0

我为受密码保护的页面制作了一个用户身份验证脚本。

在我的脚本的第一个版本中,我首先检查用户名和密码是否与数据库中的匹配,如果是,则将 $_SESSION['user_connected'] 变量和 $_COOKIE['user_connected'] 变量设置为真的。我的 index.php 文件首先验证是否设置了 $_COOKIE['user_connected'],然后绕过数据库检查是否为真。

然后我意识到用户可以访问 cookie,并且有人可以在访问该站点之前简单地将 $_COOKIE['user_connected'] 设置为 TRUE,然后就会出现混乱。但是 $_SESSION 变量呢?如果用户已连接,我可以安全地使用它们来检查整个网站吗?

tl;dr:用户可以修改 $_SESSION 变量吗?

4

2 回答 2

8

不。

它们存储在服务器上,只能由服务器上运行的脚本编辑。

用户只会获得一个令牌,用于标识与他们关联的数据包。

于 2012-06-12T07:56:34.820 回答
5

可能重复:恶意用户是否可以编辑 $_SESSION?

$_SESSION是服务器端,一旦设置就不能更改(由用户)

另外,看看这个问题

于 2012-06-12T07:56:25.617 回答