在cookie中散列密码

use*_*680 0 php security passwords cookies hash

网站安全:用户登录新鲜或密码从cookie中提取并登录(如果煮熟的密码无效,则拒绝).+多次登录失败会导致拒绝.

密码是md5哈希并用随机数盐化.

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

我明白这不是很安全.有人可以访问用户的cookie,破解散列cookie,然后知道用户密码.

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

Kin*_*pus 6

这是灾难性的.

正确(或至少更好)这样做的方法是创建一个服务器端令牌,该令牌很长且随机到足以让人无法访问,并在用户登录时发送到cookie中.当服务器收到cookie时,检查针对列表的令牌以查看它是否匹配,如果匹配,则考虑用户验证.

一些杂项说明:

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

您可能需要查看OWASP网站以获取更多提示和最佳实践,但是,请不要以任何形式发送密码,无论是对客户端进行散列,编码还是其他任何形式.