加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 18:04:13 所属栏目:PHP教程 来源:网络整理
导读:所以这基本上是一种保证,就哈希/盐析而言,我正在进行整个注册/登录过程. 我有一个用户表,其中包含字段密码,盐,令牌(显然还有其他但这是最重要的).注册后,它会生成一个随机盐和一个随机令牌,并在密码字段中输入: hash("sha256",$theirpostpassword.$randomge
所以这基本上是一种保证,就哈希/盐析而言,我正在进行整个注册/登录过程.

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

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

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

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

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

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

感谢有识之士.

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读