0

站点安全性:用户要么重新登录,要么从 cookie 中提取密码并登录(如果 cookie 密码无效,则被拒绝)。+ 多次登录失败导致拒绝。

密码经过 md5 散列和随机数加盐。

我的问题是,这不合适吗?

我知道这并不完全安全。有人可以访问用户的 cookie,破解散列的 cookie,然后知道用户密码。

但是,它是否相当安全?从某种意义上说,在任何地方存储纯文本密码是不道德的,这在某种程度上是不道德的吗?

4

1 回答 1

6

这是灾难性的。

正确(或至少更好)的方法是创建一个足够长且随机的服务器端令牌,以便在用户登录时发送到 cookie 中。当服务器收到 cookie 时,检查针对列表的令牌以查看它是否匹配,如果匹配,则认为用户已验证。

一些杂项说明:

  • 您可能希望不时重置该令牌,以防止复制用户 cookie 的人无限期地访问您的站点。例如,如果令牌超过一周,则生成一个新令牌并将其发送到客户端并在服务器端使旧令牌过期。
  • 将令牌服务器端视为与用户名和密码相同的安全性,因为它被视为一种身份验证机制。不要只是把它放在每个人都可以访问的表格或文件中!
  • 对于任何具有破坏性或更高机密性的交易,请确保强制用户通过用户名和密码重新验证。例如,如果用户想要更改他们的密码,或者如果您使用电子邮件作为密码恢复机制并且他们想要更改他们的电子邮件地址,或者如果他们想要删除他们的帐户等,请让他们输入即使令牌存在,他们的用户名和密码也可以这样做。

您可能想查看OWASP 站点以获取更多提示和最佳实践,但是,请不要以任何形式将密码发送给客户端,无论它是经过散列、编码还是其他方式。

于 2012-07-09T20:23:03.690 回答