php - session 注入(inject)?

标签 php security session

我应该如何在 session 中托管用户 ID?只是为了插入ID?我的意思是(例如):

$_SESSION['id'] = 1;

没有办法由用户自己更改它(作为 cookie..)?因为如果是的话,他可以换成任何id。

关于它的另一个问题 - 我如何检查用户是否登录(使用 session )?我创建了一个 session :

$_SESSION['is_logged_in'] = true;

同样,用户不能只创建一个名为“is_logged_in”且值为 true 的 session 吗?或者只是服务器可以控制服务器的值?

最佳答案

PHP 中的所有 session 变量都存储在服务器端。 客户端存储一个 cookie,该 cookie 引用应使用哪个 session ,然后服务器查找该 session 的值。 在您的 session 中存储 is_logged_in 以及用户 ID 是安全的。

您应该注意的是,如果另一个用户获得了另一个用户的 session cookie,他们将能够模仿该用户,直到 session 超时。一种简单的解决方案是将 session 链接到 IP。

关于php - session 注入(inject)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7616265/

相关文章:

php - 从多维数组中删除空数组

php - 504 网关超时 magento

php - 在表格单元格中对齐

php - "Commands out of sync; you can' t 现在运行此命令”- 由 mysqli::multi_query 引起

session - 使用 wicket-auth-roles 时在 session 过期时向用户显示消息

php - 将用户数据存储在 $_SESSION 中与重复的数据库访问

java - Python 到 Java 加密 (RSA)

c++ - 只允许来自 RFID 阅读器 C++ 的输入

mysql - 使用密码和用户名锁定 mysql 数据库

PHP:如何在cookie中存储 session