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

标签 php security session cookies authentication

为了保持持久的登录状态,最好在 cookie 中存储什么?

我见过很多网站(以及初学者教程!),它们只是将 validUser=1 之类的内容存储在 cookie 中。显然我可以欺骗这一点,并且网站会认为我是有效用户。

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

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

但这仍然是一个坏主意吗?存储纯文本密码并不是一个好主意,但这就是登录时在 POST 数据中发送密码的方式。此外,它还可以散列存储。但我还是觉得不太舒服。

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

看一些开源软件,比如论坛软件,他们使用的系统比较复杂,但是我通过浏览代码并不能理解它到底在做什么。

标准的“最佳实践”是什么?

最佳答案

关于php - 登录系统的 cookie 中应该存储什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19075839/

相关文章:

node.js - 将 cookieSession 与 Passport 一起使用

java - 在桌面应用程序中保存用户名和密码

asp.net - 将 UserId 公开给客户端是否安全?

php - 在 IE6 中创建 XMLHTTPRequest

php - 从 mysql JOIN 获取所有结果,即使没有连接匹配

security - 重用 session 时更改 SSL 协议(protocol)版本

internet-explorer - CakePHP Cookie/ session 问题

php - 使用 session 用户 ID 将数据插入数据库的正确行

php - 为什么foreach这么慢?

php - 创建库的框架在哪里?