【发布时间】:2014-04-27 08:38:16
【问题描述】:
我计划仅使用 cookie(而不是会话)来验证我网站私有部分的用户。我希望用户无限期地保持登录状态,除非他们自己注销。它将像这样工作:
1. 成功登录后,我会生成一个随机哈希并将其作为 HTTP cookie 存储在用户身上(使用 SSL)。我还将哈希以及用户 ID 和用户设备存储在我的数据库中。
2. 每当请求新页面时,我都会检查用户是否有 cookie。如果他有我得到哈希并在我的数据库中搜索它。如果我找到匹配项并且设备相同,我假设它是用户并提供页面。如果我找不到哈希或设备已更改,我假设它不是用户并再次要求登录。
我的问题:这种方法在安全方面可以接受吗?我不明白为什么这比使用会话(在两种情况下都保持用户登录)更不安全,因为最终风险是相同的,即让攻击者发现哈希来冒充用户。我的防御措施是跟踪用户设备,因此攻击者需要发现哈希并拥有相同的设备。
感谢您的反馈。
【问题讨论】: