是否可以修改$ _SESSION变量?

问题描述:

恶意用户是否可以将$ _SESSION(in php)变量设置为他想要的任何值?

是,通过其他用户的会话数据,如下所示:http://phpsec.org/projects/guide/4.html

如果你为他提供这样做的(糟糕/不安全的代码)的手段,这是可能的。但是,这通常不太可能。

在很大程度上取决于你的代码。非常明显的东西:$_SESSION['username'] = $_REQUEST['username']

不一般,但他们可以,如果,例如,你必须在你的PHP远程代码执行漏洞。

除非你做错事在你的代码他不能设置您的服务器上,他所能做的就是窃取其他一些用户的会话cookie,并以这种方式获得...换句话说,他可以改变自己的会话cookie,你的$ _SESSION使用,以确定他

这取决于你如何设置会话变量。用户可以利用您设置它们的方式。

与会话最常见的攻击就是会话固定:http://en.wikipedia.org/wiki/Session_fixation

不,如果你的代码是正确的,并且不允许基于未经验证userinput设定值。

是的,当REGISTER_GLOBALS上。

是。如果您使用cookie中的某些内容或其他类似的请求方法(用户可以编辑该内容以与会话交互),则会发生变化。例如,假设您创建在线商店并将商品标识存储在Cookie中,并在页面刷新上将其推送到会话中。在页面上,用户可以编辑cookie,因此当它进入会话时,它已被修改。