"记住我" - 什么保持cookie? -PHP

时间:2015-09-06 15:59:38

标签: php cookies

好吧,

过去,当客户端连接到网站时,我将其保留为$_SESSION

现在,我想提出"记住我"用饼干。

出于安全原因,我应该将cookie的值放在哪里?

感谢。

1 个答案:

答案 0 :(得分:1)

短期用户身份验证通常使用会话,而长期身份验证依赖于存储在用户浏览器上的长期cookie。用户通常会将此功能体验为标记为“在此计算机上记住我”的复选框。实现“记住我”功能而不构建一个可以轻易利用的后门需要一个小的工程专长。

  

天真的解决方案:只需在Cookie中存储用户凭据

任何看起来像remember_user=1337的长期身份验证解决方案都是滥用的。由于管理员帐户通常具有较低的用户ID,因此remember_user=1几乎肯定会将您登录到特权用户帐户。

  

持久身份验证令牌

另一种常见的策略,更不容易受到攻击,只是在用户检查“记住我”框时生成一个唯一的令牌,将唯一令牌存储在cookie中,并拥有一个数据库表,将令牌与每个用户关联起来帐户。有许多事情在这里仍然可能出错,但毫无疑问是对以前战略的改进。

Source

为了更深入的了解,我强烈推荐这个Implementing Secure User Authentication in PHP Applications with Long-Term Persistence