我想在浏览器cookie中保存用户的身份验证信息以进行持久登录.正如他们所说,它永远不会安全地在cookie中存储任何秘密信息(如密码),但为了有一个选项,如"记住密码",我认为没有任何其他选择.
因此,如果用户想要记住他的登录信息,并且我存储用户名(电子邮件)+不是密码,而是存储其他一些独特信息,例如cookie中的HASHED DB ID.然后我应检查存储在cookie中的散列ID是否与存储在Cookie中的用户电子邮件匹配.我认为任何人都可以很容易地看到存储在浏览器中的cookie(例如在Firefox中,选项 - > Cookies).
那么这就像有人从保存的计算机中读取cookie一样弱,然后在其他计算机上设置带有该信息的cookie并且他将登录?(因为脚本将检查存储的电子邮件并使用数据库散列id并且它将匹配)?
如果不在数据库中存储其他信息(例如会话ID等),这种方法可以改进吗?谢谢
Jac*_*cco 12
还有另一种选择.
对于每个用户,在登录并请求记住时,创建一个长的随机字符串.
将此字符串与userId一起存储在您为用户提供的cookie中.
在数据库中存储字符串的正确盐渍哈希值.
如果用户提供了记住我的cookie,请将随机字符串与数据库中的散列验证器匹配(就像密码所在的那样).
如果匹配 - >记录用户并为他们创建一个新的记住我的cookie.
如果不匹配 - >请求用户名和密码.