php – 记住我的cookie,需要会话cookie吗?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 记住我的cookie,需要会话cookie吗?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1551字,纯文字阅读大概需要3分钟。
内容图文
![php – 记住我的cookie,需要会话cookie吗?](/upload/InfoBanner/zyjiaocheng/770/c6762b736cad4570a4c2944b27c340a1.jpg)
当用户登录我的站点时,它会创建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吗?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。