在cookies中保存散列密码真的很危险吗?

关于在cookie中保存哈希密码的安全风险有许多讨论,当访问用户的计算机时,黑客可以使用保存的密码登录。 如果黑客可以访问用户的计算机,他可以捕获密码,因为浏览器也可以在本地保存密码(当然是加密的)。 在cookie中设置的密码与浏览器保存的密码有什么区别?

出于显而易见的原因,应该发送临时GUID而不是密码。 无论如何,我认为限制对登录IP的访问可能会让攻击者关闭门户以使用本地保存的GUID。 当然,它会限制日志记录的时间长度,因为IP通常是动态的并且会定期变化; 但我认为它值得注意的安全性。 任何想法?


我想你之所以想要在cookie中存储哈希密码的原因是为了创建一个“记住我”的cookie。 所以你需要一个秘密的cookie值,这样别人就不会轻易猜出它。 任何有权访问此值的人都可以以该用户身份登录,所以它实际上是一个“额外密码”。

这里涉及两个风险:

最重要的是暴露密码的风险。 这不仅会使您的网站处于危险之中,而且还可能导致其他网站。 大多数用户重复使用他们的密码,密码可能会让入侵者访问用户的电子邮件帐户和网上银行。 有权访问散列值的人可以使用蛮力或彩虹表来发现原始密码(彩虹表是预先计算的散列的长列表)。 彩虹桌很容易获得超过8个字符的密码,甚至更长。 您可以通过腌制密码来避免这种情况,以便它在创建哈希值之前超过20个字符(请记住将盐储存在cookie中)。 使用安全哈希算法计算出的正确腌制密码哈希应该是相当安全的。

另一个风险与用户必须更改其原始密码以使散列密码字符串无效的事实相关。 一旦打开该功能,用户无法真正关闭该功能。 您可以在未检查“记住我”按钮时删除Cookie,但如果Cookie已被泄露,则该cookie不起作用。 如果他的电脑被偷了会怎么样? 如果用户在一台计算机上检查了此按钮,则他必须访问该计算机才能禁用此功能。


是的,在cookie中使用哈希密码不太安全。 将它保存在浏览器中并通过网络发送它们之间有区别:除非您始终使用SSL,否则攻击者无需访问机器即可从请求中读取Cookie。

发送一个随机值要安全得多,因为与用户的实际密码没有什么联系:可以通过忘记随机值来使会话过期,而不必让用户更改密码。 此外,如果攻击者确实从cookie中获取散列值,那么如果发送的是真的密码,他们可能会恢复实际的密码。


当访问用户的计算机时,黑客可以使用保存的密码登录。 如果黑客可以访问用户的计算机,他可以捕获密码,因为浏览器也可以在本地保存密码(当然是加密的)。

不确定你在这里的意思。 如果您要求IE记住您网站的密码,并且某人拥有您的计算机的密码,并且可以使用您的IE,那么可以,他可以使用您的密码登录。 但这与哈希或曲奇等无关。

首先,无法检索散列密码。 所以如果有人有你的密码散列,他不知道你的密码。

当您登录到请求密码的站点时,您提供了加密发送的密码。 标准做法是将用户的密码存储为散列,即密码本身。 所以你输入密码,接收服务器将比较散列和存储的散列。

现在与您在cookie中发送散列密码的问题有关,这与会话管理有关。 即确定用户是否已经成功登录。
恕我直言,只使用散列密码作为确定用户是否已使用普通HTTP登录的方式并不是一个好主意。

但如果这是你所要求的,这是另一个话题。
即如何最好地通过HTTP连接进行会话管理

链接地址: http://www.djcxy.com/p/23661.html

上一篇: Is it really dangerous to save hashed password in cookies?

下一篇: Authenticate system without sessions