【发布时间】:2011-12-09 00:49:36
【问题描述】:
我一直在大量使用$_SESSION superglobal。
然而情况是这样的:
一旦用户登录,我想跟踪他的 ID(MySQL 表)。我可以轻松
将id插入$_SESSION['id'] = $user_id;
毕竟我可以在我网站上的页面中使用该变量。我的想法是 - 用户可以将 ID 欺骗到另一个。如果我看到有一个简单的数字,那么我可以稍微更改一下,看看会发生什么 - 我想防止这种情况发生,因为它可能会导致很多问题,因为用户 ID 将用于添加、删除、编辑数据库中的条目.
session_regenerate_id() 是否足以让我的会话免受劫持?
结论: Cookie 只存储会话标识符 - 所有值都在服务器上,永远不会传递到客户端。 Read about session fixation/hijacking on StackOverflow
【问题讨论】:
-
是什么让你认为存储在
$_SESSION中的变量被发送到客户端? -
什么都没有。我相信在 cookie 中的客户端只有某种哈希值,它与 $_SESSION 合作。我的问题可能写错了 - 我会更新。
标签: php session-hijacking