我想知道的是,是否可以在客户端更改PHP $ _SESSION变量。例如,如果我$_SESSION['username'] = $username;
某人可以某种方式更改我的$_SESSION['username']
变量的值吗?
答案 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调用它,只需执行它并更改该值。
希望这会对你有所帮助。