最近研究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