php – 记住我的cookie,需要会话cookie吗?

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 记住我的cookie,需要会话cookie吗?脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
用户登录我的站点时,它会创建2个cookie,一个具有会话ID(与后端用户ID相关),并记住我持续3个月的cookie.

记住我的cookie构造如下:

userid:timeout:hash

散列是用户ID的HMAC SHA256散列:超时以止篡改.

如果会话ID不存在(用户关闭浏览器并再次打开它以便cookie消失,或者memcached中不存在会话ID),它会查看remember cookie并重新生成一个新的会话cookie,前提是它已经存在没有超时,哈希是正确的.

但是我根本没有看到会话cookie的意义,因为会话ID只指向后端的用户ID.我可以使用remember me cookie来检索当前用户.

所以我想完全废弃会话cookie,并有兴趣听到一些关于此的想法.这种方法听起来相对安全吗?我可以做得更好吗?

提前致谢!

解决方法

是的,对于大多数情况来说它确实足够安全,但为什么在可以避免的情况下在cookie中包含用户特定数据呢?此外,这有一个小缺点:

如果用户设法从其用户窃取cookie,您必须更改生成cookie的整个方式或用户将始终有权访问,从而重置每个人的cookie,会发生什么情况.想象一下,这是你的cookie被盗……

这是我的解决方案:在用户表中创建另一行名为’userhash’.当用户登录时,您生成一个随机哈希而不进行任何输入,只是随机,并将其存储在表和cookie中.然后你只需要在cookie中存储userhash:timeout.您检查数据库是否存在,如果存在,那就是您的用户.当用户注销时,cookie和数据库中的行将删除.出于显而易见的原因,您必须在比较之前检查cookie是否存在(将有许多空).

注意:此方法只允许一次注册一个cookie,因此没有笔记本电脑桌面.这很好,因为偷窃变得更加困难,因为只要真正的用户登录就会持续,而且因为它只允许1台计算机而导致错误.但你看到了这个想法,以及如何使用这种方法,但有几台计算机登录…类似faceBook.

PD,如果你说你的应用程序必须实际上有多安全,那就太好了……

PD2,如果您还没有考虑过,还有其他更严重的安全问题(SSL就是一个).

脚本宝典总结

以上是脚本宝典为你收集整理的php – 记住我的cookie,需要会话cookie吗?全部内容,希望文章能够帮你解决php – 记住我的cookie,需要会话cookie吗?所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。