在cookie中存储(散列)密码是否安全?

时间:2009-10-13 23:23:50

标签: security cookies hash session passwords

我已经阅读了一些有关SO的文章和问题(例如here),表示您不应将用户的密码存储在Cookie中。如果密码被盐渍和散列,为什么这种不安全?

特别是,为什么它不如使用会话安全,通常建议的替代方案?如果用户希望保持登录状态那么这个新的cookie(带有会话ID /哈希)肯定与使用用户密码的cookie一样安全吗?如果cookie在某种程度上被“窃取”,攻击者可以以相同的方式以用户身份登录。

编辑:问题的主要症结是关于用户保持登录的部分,即通过“记住我?”复选框。在这种情况下,肯定只有一次会议?

4 个答案:

答案 0 :(得分:13)

通过在cookie中放入哈希密码+ salt,您:

  • 打开无限的强力矢量
  • 允许任何人复制和使用cookie(它总是允许访问;而会话会持续一段时间)。
  • 如果哈希方案变得相关,则更难以更改哈希方案

此外,您通常需要存储其他内容,以识别用户(例如他们的用户ID,以便您可以查找其密码并进行匹配)。这可能导致其他模糊的问题。

所以你最好采用会话ID方法。

答案 1 :(得分:4)

在其他区别中,如果存储会话,则您拥有此会话。如果采用了密码,那么从现在开始,您拥有该用户的每个会话。

答案 2 :(得分:3)

会话通常在某种程度上与IP地址相关联,这有点可以防止会话被盗。

除此之外,会话ID不包含任何个人信息;你的密码,甚至盐渍和哈希。密码,盐渍和散列,可以重复使用;会话ID不能。会话结束后,您需要一个新的会话ID才能再次模拟用户。

答案 3 :(得分:1)

如何让别人与您打交道并为您考虑所有这些问题?也就是说,使用OpenID,Windows Live ID,Facebook Connect等

相关问题