問題

我希望我的網站有一個複選框,使用者可以單擊,以便他們每次訪問我的網站時都不必登入.我知道我需要在他們的電腦上儲存一個cookie來實現這一點,但該cookie中應該包含什麼?

另外,是否有常見的錯誤來防止這個cookie呈現安全脆弱性,這可以避免,同時仍然賦予“記住我”功能?

  最佳答案

改進永續性庫基最佳實踐

您可以使用此策略描述 here 作為最佳實踐 (2006)或 這裡描述的更新戰略 (2015):

  1. 當用戶成功登入 Remember Me 時,除了標準會話管理 cookie 之外,還會發布登入 cookie。
  2. 登入cookie包含一個系列識別符號和令牌.系列和令牌是來自適當大空間的不可猜測的隨機數字.兩者都儲存在資料庫表中,令牌被hished(sha256很好).
  3. 當非 loggedin 使用者訪問該網站並呈現一個登入 cookie 時,資料庫中查詢系列識別符號。 2001年12月31日終了的兩年期收入和支出及準備金和基金結餘變動報表 2001年12月31日終了的兩年期收入和支出及準備金和基金結餘變動報表 如果系列識別符號存在並且令牌的雜湊與該系列識別符號的雜湊匹配,那麼使用者被認為是經過身份驗證的.生成新令牌,令牌的新雜湊儲存在舊記錄上,並向用戶釋出新的登入cookie(重用系列識別符號可以). 如果系列出現但令牌不匹配,則假定會發生盜竊.使用者收到措辭強烈的警告,並刪除使用者的所有記憶會話. 如果不存在使用者名稱和系列,則忽略登入cookie。 2001年12月31日終了的兩年期收入和支出及準備金和基金結餘變動報表

這種方法提供了防禦深度.如果有人設法洩漏資料庫表,它不會給攻擊者一個模仿使用者的開門.

  相同標籤的其他問題

securitycookiesremember-me