是否可以更改$ _SESSION变量客户端?

时间:2011-08-02 12:40:52

标签: php session client-side

  

可能重复:
  PHP Can a client ever set $_SESSION variables?

我想知道的是,是否可以在客户端更改PHP $ _SESSION变量。例如,如果我$_SESSION['username'] = $username;某人可以某种方式更改我的$_SESSION['username']变量的值吗?

3 个答案:

答案 0 :(得分:7)

无法更改SESSION超全局的内容。它存在于服务器上,客户端无法访问它。

但是,会话ID被传递给客户端,以便当客户端联系服务器时,服务器知道要使用哪个会话。 可以更改此值(请参阅Calums答案以防止此有关信息,请参阅http://php.net/manual/en/session.security.php)。这将允许用户使用其他会话(但不会更改会话的值)。

答案 1 :(得分:4)

PHP是一种服务器端编程语言,$ _SESSION超全局只能在服务器上直接访问。通过“正常”的php会话,SESSON超全局中包含的数据在cookie中以浏览器和服务器之间来回传递。从技术上讲,可以通过修改cookie在Web浏览器中使用Javascript修改会话。

但是请注意,任何做这样事情的尝试都可能是一个糟糕的想法,并且很可能是一个更简单的方法来完成你想要做的任何事情。

编辑:我问的这个问题可能对您有用 Codeigniter/PHP sessions security question

答案 2 :(得分:1)

不完全是,但您可以使用AJAX进行模拟。只需编写一个更改值的php文件,然后从AJAX调用它,只需执行它并更改该值。

希望这会对你有所帮助。