簡書模擬登錄缺陷!!!

最近研究cookie和sso比較多,不知道大家有沒有發現,你只要登陸過簡書,不logout,不clear cookie,從新打開頁面的話,能夠無需登陸進入帳號,因而激發了我強烈的好奇心作了如下測試,並發現了一個很神奇的問題,不知道簡書如何定義這個問題,是bug仍是符合預期?@簡寶玉瀏覽器

1、當咱們登陸的時候,簡書在咱們瀏覽器寫入了什麼cookie?

  • 未登陸

  • 登陸後

發現登錄後多了兩個cookie,分別是`remember_user_token`和`_m7e_session`,從字面意義上大概就是記錄user token和sessionid的cookie

2、是否自動登陸和這兩個cookie有關係?實驗以下:

  • 關閉當前瀏覽器(瀏覽器未設置關閉時自動清除cookie),這個時候cookie仍是存在的,打開瀏覽器進入jianshu,發現自動登陸
  • 手動將這兩個cookie刪除,關閉瀏覽器或者刷新頁面,發現用戶logout了 至此能夠認定這兩個cookie和簡書的自動登陸有關係(應該是遠程的受權service作的驗證)

3、remember_user_token_m7e_session 是否能夠複用?

  • 前提:遠程受權服務器認爲該token和session是active的或者你沒有主動logout
  • 過程:嘗試着兩個不一樣的瀏覽器或者兩個不一樣的機器,根據request請求是會將cookie待會給服務器的工做流程,咱們手動將cookieremote_user_token_m7e_session使用console寫入www.jianshu.com,你須要在已登陸的cookie裏邊手動複製這兩個cookie的值出來,由於你會看到他是httpOnly而且是Secure的,document.cookie沒法獲取,而後使用以下寫去另外一個瀏覽器未登陸的jianshu首頁中www.jianshu.com
document.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

相關文章
相關標籤/搜索