为了方便用户,“记住我”复选框提供了无缝的登录体验通过在会话之间保留用户的身份验证。为了确保其安全性,了解在用户浏览器中存储 cookie 的最佳实践至关重要。受到可信博客文章的启发,让我们探索此功能的稳健实现。
单独的数据库表 auth_tokens 为存储身份验证信息提供了基础。它包含选择器、令牌、用户 ID 和过期时间戳等字段。将选择器和令牌分开可以防止 SELECT 查询期间的定时攻击,从而增强安全性。
成功登录并激活“记住我”后,将发生以下操作:
在没有活动会话且存在'记住' cookie,执行以下操作:
选择器利用 9 字节的随机数据,提供高水平的抗碰撞性。认证符使用33字节,保证了其不可预测性。散列验证器的存储可降低用户假冒风险。
选择器和验证器的分离可确保恒定时间的数据库查找,防止基于时间的攻击。
通过遵守这些原则,“ “记住我”功能成为安全、无忧的用户体验不可或缺的一部分。以上是如何在 PHP 中实现安全的'记住我”功能?的详细内容。更多信息请关注PHP中文网其他相关文章!