在过去,当客户端连接到该网站,我保持它为$_SESSION
。
现在,我想用cookie来记住“记住我”的可能性。
出于安全原因,我应该如何放置cookie的价值?
谢谢。
在过去,当客户端连接到该网站,我保持它为$_SESSION
。
现在,我想用cookie来记住“记住我”的可能性。
出于安全原因,我应该如何放置cookie的价值?
谢谢。
短期用户身份验证通常使用会话,而长期身份验证依赖于存储在用户浏览器中的长期cookie。用户通常会将此功能体验为标记为“在此计算机上记住我”的复选框。实现一个记住我的功能,而不建立一个可以利用的微妙后门需要一个小小的工程专长。
天真的解决方案:只存储用户凭据在cookie
的,看起来像remember_user=1337
长期验证的任何解决方案是敞开的滥用。由于管理员帐户通常具有较低的用户ID,因此remember_user=1
几乎肯定会将您登录到特权用户帐户。
持久认证令牌
另一种常见的策略,容易更谈不上攻击,是只生成一个唯一的令牌当用户检查“记住我”复选框,独特的标记存储在cookie ,并有一个数据库表,将令牌与每个用户的帐户相关联。有很多事情在这里仍然可能会出错,但毫无疑问,这是对先前策略的改进。
为了更深入的了解,我强烈推荐这款Implementing Secure User Authentication in PHP Applications with Long-Term Persistence
感谢您的信息(: – UnderPhp
这个问题已经回答了[这里](http://stackoverflow.com/a/244907/1292092)。 – curtis1000