会话变量php登录域

会话变量php登录域,php,session,session-variables,Php,Session,Session Variables,我想知道是否可以作为用户更改/设置/删除我的会话变量 我正在重新考虑用PHP登录领域的方式。我现在的做法是检查是否设置了某个会话变量。但是,如果有人可以更改他/她的会话变量,则此操作将中断。不,您可以完全控制会话内容 用户所能做的就是删除会话cookie,从而使自己与给定会话分离,但他不能更改其内容。如果您没有允许用户主动更改此数据的方法/表单(无意或主动),则不允许用户更改其用户名等 由于会话数据存储在服务器上,因此很难自行设置。如果register_globals处于启用状态,则可能会出现这

我想知道是否可以作为用户更改/设置/删除我的会话变量


我正在重新考虑用PHP登录领域的方式。我现在的做法是检查是否设置了某个会话变量。但是,如果有人可以更改他/她的会话变量,则此操作将中断。

不,您可以完全控制会话内容


用户所能做的就是删除会话cookie,从而使自己与给定会话分离,但他不能更改其内容。

如果您没有允许用户主动更改此数据的方法/表单(无意或主动),则不允许用户更改其用户名等

由于会话数据存储在服务器上,因此很难自行设置。如果register_globals处于启用状态,则可能会出现这种情况,但这也需要其他情况


但总的来说,不,用户不应该能够更改会话数据,除非您为他们提供了一种方法

用户不能对会话变量进行操作,除非通过您公开的任何功能。会话变量存储在服务器上,不会自动向用户公开


用户唯一能做的就是弄乱会话id。

用户所能做的就是删除会话cookie
从技术上讲,他们可以弄乱会话id本身。@George这会产生完全相同的效果,但不会造成灾难(或者如果他们嗅到会话cookie)如果他们嗅到了会话cookie,我觉得这是一个非常重要的区别。因此,我的评论。register\u globals评论没有真正意义。就其本身而言,它不会在会话中放入任何内容,您的应用程序中必须有一个bug,您也可以在不使用
register\u globals
.artifact的情况下引入该bug,“如果register\u globals打开,这可能是一种可能性,但也需要其他情况才能实现”。是的,register_globals本身不会导致可能的攻击,但如果它们不总是正确定义变量或进行检查,则可能允许用户利用它。这或多或少就是我在“其他情况是真实的”部分的意思。@Artefactor不能用类似这样的话来抨击它:
(我重新提交了这条评论,删除了我以前的评论,因为我没有输入Artefactor的名字。)@George我真的不这么认为,我认为这可能是另一种方式,即超全局隐藏用户提交的变量,但我已经处理register_globals很久了。