我有一个使用OpenID登录用户的网站。我正在使用的库,在用户登录时返回用户个人资料。此个人资料包含用户的电子邮件,姓名,头像的链接以及OpenID提供商返回的 ID 。
我保持用户登录的策略是:
现在问题是这样的:如果这个cookie信息以某种方式被用户窃取,黑客可以轻松登录而不是用户自己。我可以在每次用户登录时创建一个新的哈希码并更新用户的cookeis,但它会使其他浏览器/计算机cookie的信息无效。
由于StackOverflow网站没有遇到这样的问题,我想知道如何保护我的登录策略并添加保持登录用户的功能。
答案 0 :(得分:2)
执行此操作的标准方法是分配无意义的会话ID并将其作为cookie发送;在您的数据库中,您可以将用户的凭据信息与该会话ID一起存储。当用户注销时,您可以使该会话ID无效。
答案 1 :(得分:1)
对于让客户端保持登录的所有机制,这不是问题吗?如果你登录你的gmail,我偷了你的cookie,并把它们放在我自己的浏览器中,就无法区分我的浏览器和你的浏览器,我可以访问你的gmail。我相信没有办法阻止你提出的那种攻击(除了用户保持他们的计算机没有可能窃取cookie的病毒等)