微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – Hashing&Salting – 验证登录w / cookies

所以这基本上是一种保证,就哈希/盐析而言,我正在进行整个注册/登录过程.

我有一个用户表,其中包含字段密码,盐,令牌(显然还有其他但这是最重要的).注册后,它会生成一个随机盐和一个随机令牌,并在密码字段中输入:

hash("sha256",$theirpostpassword.$randomgeneratedsalt);

随机生成的salt和令牌存储在表中该用户行的各自字段中.

因此,在登录时,我只使用他们指定的用户名用户行中选择salt.然后我做一个计数查询,查看有多少行的帖子密码与他们的特定盐连接,然后我将它们登录.很确定我有那个部分.

现在我想在每个页面上验证他们的登录我会在每个页面上运行一个函数来检查他们的cookie,看看id-username-token的格式是否与数据库中的行匹配.这意味着每次登录都会使用这些凭据设置其cookie.

现在,我能想到的唯一能让它变得更好的是每次有效登录都会更改令牌吗?

感谢有识之士.

是的,你绝对应该在每次登录时更改令牌.否则,被盗一次的令牌是一个永远被盗的账户.用户希望注销通过使cookie或其他数据无效来保护会话免受攻击.

您可以通过从用户ID的哈希值,会话到期时间以及您在cookie中想要的任何其他内容,以及盐(就像登录系统一样)生成它,而不是令牌是随机的,它可以作为签名. .这种盐不一定来自数据库,但它可以.它可能是一个硬编码的字符串(我认为有时称为“胡椒”).如果cookie超过到期时间,请记住将cookie视为无效.这就是令牌应该是签名的原因,以确保它们不会欺骗那些数据.

原文地址:https://www.jb51.cc/php/134442.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐