$ _SESSION数组的安全性

too*_*php 5 php security session

当低权限非管理员用户成功登录我的Web应用程序时,我将以下数据存储在$_SESSION数组中:

$_SESSION = array(
    'user_id'     => 2343,  // whatever their user_id number is from the DB
    'allow_admin' => false, // don't give them access to admin tools
    'allow_edit'  => false, // don't let them edit stuff
    );
Run Code Online (Sandbox Code Playgroud)

$_SESSION除了以某种方式编辑会话文件之外,还有什么办法可以操纵数组给他们Admin或Edit访问权限/tmp吗?(上面的代码是添加这些项目的唯一地方$_SESSION)

Pau*_*xon 9

会话的内容仅在服务器端可见并可修改.

如果您的应用程序或服务器包含某些漏洞,则只能以"未经授权"的方式修改它们.

您还应该知道诸如会话固定攻击之类的事情,攻击者将特定的会话ID强制转移给毫无戒心的用户,当用户登录并提升该会话的权限时,允许攻击者共享该会话.

减轻这些问题的一种方法是每当更改会话的权限级别时重新生成会话ID.

另见这个问题: