2015-09-06 64 views
0

那么,“记住我” - cookie中保存什么? -PHP

在过去,当客户端连接到该网站,我保持它为$_SESSION

现在,我想用cookie来记住“记住我”的可能性。

出于安全原因,我应该如何放置cookie的价值?

谢谢。

+1

这个问题已经回答了[这里](http://stackoverflow.com/a/244907/1292092)。 – curtis1000

回答

1

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

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

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

持久认证令牌

另一种常见的策略,容易更谈不上攻击,是只生成一个唯一的令牌当用户检查“记住我”复选框,独特的标记存储在cookie ,并有一个数据库表,将令牌与每个用户的帐户相关联。有很多事情在这里仍然可能会出错,但毫无疑问,这是对先前策略的改进。

Source

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

+1

感谢您的信息(: – UnderPhp