3

我刚刚阅读了以下内容:

并且不要将持久登录 COOKIE(令牌)存储在您的数据库中,只存储它的哈希值!登录令牌是密码等效的,因此如果攻击者掌握了您的数据库,他/她可以使用这些令牌登录到任何帐户,就像它们是明文登录密码组合一样。因此,在存储持久登录令牌时使用强加盐哈希(bcrypt / phpass)。

(在这个答案中:https ://stackoverflow.com/a/477578/943102 )

我认为应该使用散列,因为人们在多个站点上使用相同的密码,它可以防止攻击者侵入同一用户的其他帐户。由于登录令牌是一个随机值,因此在这种情况下不存在这种风险。我显然遗漏了一些东西,但我找不到任何关于此的更多信息。有人可以解释一下吗?

4

1 回答 1

9

假设您是一名 Web 应用程序开发人员,并且您做了正确的事情,并且您只将用户密码的哈希值存储在数据库中(不是明文),但您决定将其经过身份验证的登录令牌存储在数据库中而不对其进行哈希处理。

现在假设恶意攻击者闯入 Web 应用程序的数据库并进行转储并与 Web 上的恶意攻击伙伴共享。好吧,那些密码哈希对他没有多大用处,因为他无法使用哈希登录。但他看到这些登录令牌以纯文本形式存储。现在对他来说,将一个放入 cookie 并将其与 HTTP 请求一起发送到服务器是微不足道的。服务器将获取 cookie,根据数据库对其进行身份验证,并允许攻击者进入。因此,即使这些登录令牌只是随机值,一旦攻击者拥有它们,他或她就可以使用它们来模拟经过身份验证的用户。

于 2012-11-17T01:49:52.513 回答