用户可以访问$ _SESSION变量吗?

时间:2012-06-12 07:55:15

标签: php session-variables

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

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

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

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

2 个答案:

答案 0 :(得分:8)

没有

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

用户只获取一个标记,用于标识与之关联的数据包。

答案 1 :(得分:5)

  

可能重复:Is it possible for a malicious user to edit $_SESSION?

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

另外,请看一下这个question