最近研究cookie和sso比较多,不知道大家有没有发现,你只要登陆过简书,不logout,不clear cookie,从新打开页面的话,能够无需登陆进入帐号,因而激发了我强烈的好奇心作了如下测试,并发现了一个很神奇的问题,不知道简书如何定义这个问题,是bug仍是符合预期?@简宝玉浏览器
发现登录后多了两个cookie,分别是`remember_user_token`和`_m7e_session`,从字面意义上大概就是记录user token和sessionid的cookie
remember_user_token
和 _m7e_session
是否能够复用?remote_user_token
和_m7e_session
使用console写入www.jianshu.com,你须要在已登陆的cookie里边手动复制这两个cookie的值出来,由于你会看到他是httpOnly而且是Secure的,document.cookie没法获取,而后使用以下写去另外一个浏览器未登陆的jianshu首页中www.jianshu.comdocument.cookie = "remember_user_token=你复制出来的值;path=/" document.cookie = "_m7e_session=你复制出来的值;path=/"
此时浏览器就会多出两个cookie,因为不是在服务器端设置的HttpOnly和Secure,因此你会发现这两个值并无打钩,不过没有关系,反正都会跟着request去到服务器端,这个时候你只须要从新刷新一下页面,就会发现自动登陆了,不知道简书对这个问题怎么定义?服务器
思考:在远程受权服务器认为咱们的token和session失效以前,万一咱们的reqeust被代理服务器抓包,并获取header中的两个cookie来手动写入cookie -> 发送请求 -> 自动登陆。这样的场景不就很危险吗?@简宝玉cookie
文章全部步骤都是通过实践检验并可行,如有问题,下方请评论,或者想要学习的也能够一块儿交流。 ![](https://upload-images.jianshu.io/upload_images/11678829-51eacfa8a19c1531.png?imageMogr2/auto-orient/stsession