什么应该存储在登录系统的cookie中?

Rob*_*Rob 11 php security cookies session login

存储在cookie中以保持持久登录状态的最佳方法是什么?

我见过许多网站(和初学者教程!),只是在cookie中存储了像validUser = 1这样的东西.显然,我可以欺骗它,网站会认为我是一个有效的用户.

如果用户名存储在cookie中,我可以通过在我的请求中发送带有他/她用户名的cookie来伪装成任何用户.

因此,如果您将用户名密码存储在cookie中,那么我必须知道用户名和密码才能登录.实际上,用户自动登录 - 就像他的浏览器保存了密码一样.浏览器不必每次都自己在框中输入凭证,而是自动发送每个页面请求.

但这仍然是一个坏主意吗?存储纯文本密码不是一个好主意,但这是在登录时如何在POST数据中发送.此外,它可以存储哈希.但我仍然觉得不舒服.

也许cookie不应该用于存储除会话ID之外的任何内容,并且用户数据存储在服务器本身上.这可能是一个更安全的位置,假设服务器不共享.

看一些开源软件,比如论坛软件,他们使用的是一个更复杂的系统,但我无法完全理解它在浏览代码时的作用.

什么是标准的"最佳实践"?

DVK*_*DVK 6

2篇好文章是:

持久登录Cookie最佳实践

改进的持久登录Cookie最佳实践

  • 仅包含链接的答案不是好的答案.应编辑此答案以包括链接文章的摘要.(是的,我知道这已经是一个非常古老的答案.但是,关于链接断开的评论完全表明需要总结链接.) (6认同)