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

Dis*_*oat 3 security passwords cookies hash session

我已经阅读了一些关于SO的文章和问题(例如这里),说你不应该在cookie中存储用户的密码.如果密码被盐渍和散列,为什么这个不安全?

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

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

Noo*_*ilk 13

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

  • 打开无限的暴力矢量
  • 允许cookie被任何人复制和使用(它总是允许访问;而会话这样做一段时间).
  • 如果变更相关,则更难更改散列方案

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

因此,您最好采用会话ID方法.