為了方便用戶,「記住我」複選框提供了無縫的登入體驗透過在會話之間保留使用者的身份驗證。為了確保其安全性,了解在使用者瀏覽器中儲存 cookie 的最佳實踐至關重要。受到可信任部落格文章的啟發,讓我們探索此功能的穩健實現。
單獨的資料庫表 auth_tokens 為儲存身分驗證資訊提供了基礎。它包含選擇器、令牌、使用者 ID 和過期時間戳等欄位。將選擇器和令牌分開可以防止 SELECT 查詢期間的定時攻擊,從而增強安全性。
成功登入並啟動「記住我」後,將發生以下操作:
在沒有活動會話且存在「記住」的情況下cookie 時,會執行以下操作:
選擇器使用 9 位元組的隨機數據,提供高水準的抗碰撞性。認證符使用33字節,保證了其不可預測性。雜湊驗證器的儲存可降低用戶假冒風險。
選擇器和驗證器的分離可確保恆定時間的資料庫查找,防止基於時間的攻擊。
透過遵守這些原則,「「記住我」功能成為安全、無憂的使用者體驗不可或缺的一部分。
以上是如何在 PHP 中實現安全的「記住我」功能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!