如何安全實現「記住我」功能

2022-05-01 09:42:09 字數 854 閱讀 6854

1.利用token

原理:每次登入時為使用者生成乙個token並存放於cookie中,下次登入時,驗證token是否正確並自動登入

這樣每次生成時失效時間不同,token也不同

缺點: 1.安全問題,當cookie被竊取(可以為cookie設定http-only,防範xss、csrf等攻擊)時,任何人都能在失效前登入

2.安全的token生成方法

需要兩個字段:

token:隨機生成的字串

series: 登入序列號,僅僅當使用者重新輸入使用者名稱密碼登入時更新,在記住我狀態下自動登入時只有token更新

a.使用者在同一瀏覽器下

1.使用者輸入使用者名稱密碼登入 sesies= seriesa token= tokena

2.使用者在token過期時間內自動登入 series= seriesa token= tokenb

3.使用者在token過期後或重新登入 series= seriesc token= tokenc

b.使用者在不同瀏覽器下登入

1.使用者在a瀏覽器內輸入使用者名稱密碼登入 sesies= seriesa token= tokena

2.使用者在b瀏覽器內輸入使用者名稱密碼登入 series= seriesb token= tokenb

c.使用者資訊被盜

1.使用者輸入使用者名稱密碼登入 sesies= seriesa token= tokena

2.使用者資訊被盜,黑客獲取series和token登入 series= seriesa token= tokenb

3.使用者在token過期時間內登入,使用本地cookie內的seriesa tokena,伺服器接受到請求後發現series未變,token變了!

傳送被盜警告。

記住我功能實現

一 登陸時記住我功能實現。1.首先在前端介面新增乙個單選框,當表單提交的時候會一起提交過來。同時單選框傳送的屬性值分為ture和false。submit id btnlogin value 登入 class login btn errormsg style font size 14px color ...

Web安全 Shiro 記住我功能

在 web安全 使用shiro做認證和訪問控制 中,我簡單了說明了shiro的用法,今天來講下利用shiro怎麼實現記住我功能,如下圖 如果勾選了記住我,那麼在關閉瀏覽器或伺服器重啟後,使用者開啟 會自動登入進去,無需再次輸入密碼。據我了解,記住我功能應該是shiro把使用者資訊序列化到cookie...

登入記住我功能實現

說明 使用此功能我是在有伺服器環境下操作的 密碼 sfce cookie相關知識 引用檔案 src js jquery.cookie.js script jsp頁面一載入就執行判斷cookie中是否存入資訊並填入表單 document ready function if cookie name sc...