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

Geo*_*rac 3 php session client-side

可能重复:
PHP客户端是否可以设置$ _SESSION变量?

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

Jim*_*Jim 7

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

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


Cas*_*ynn 5

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

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

编辑:我问的这个问题可能对您有用 Codeigniter/PHP 会话安全问题

  • 修改 cookie 不会让您更改会话 superglobal 的值,但可以让您使用另一个会话(前提是您猜到了正确的会话 ID)。 (4认同)
  • 我担心的是 **user** 是否能够更改此变量,以及如何保护它。 (2认同)