会话修复和会话标识符之间的差异未更新

时间:2013-11-25 08:15:31

标签: php session

我正在开发一个网站,我的工作是保护网站免受XSS等所有类型的漏洞攻击。

我运行了AppScan,这是一个IBM工具,用于检查代码更改后的漏洞,我在报告中看到“会话标识符未更新”的错误并说

威胁分类: 会话固定

我正在为每个请求生成新的Cookie,这就是我们解决会话修复问题的方法。这是对的吗?

我想问的一个重要问题是“会话修复”和“会话标识符未更新”之间有什么区别

2 个答案:

答案 0 :(得分:0)

每次会话更改状态时,您是否更改了会话ID?这很可能是你的问题。

如果您的网站接受会话ID作为URL参数,并且在有人登录时您没有更改它,则可能是问题所在。例如:

1)我发送链接www.example.com/?sess_id=123456

2)您访问该站点的链接并登录。会话ID 123456现在是您的会话。

3)我访问www.example.com/?sess_id=123456,我现在就像你一样登录。

当用户在步骤2登录时,您需要重新生成新的会话ID,因为会话已更改状态。即使会话ID是服务器生成的,并且只接受服务器生成的id,我仍然可以修复你的会话。

1)我访问www.example.com,看到会话ID为654321。

2)我发送链接www.example.com/?sess_id=654321并登录。

3)我访问www.example.com/?sess_id=654321,现在我已经登录了。

如果没有更多信息,这可能不是您问题的原因,但最有可能来自您提供的内容。检查会话更改状态时,会重新生成会话ID(当用户登录/注销时)。

答案 1 :(得分:-1)

$_SESSION超级全局,具有相应的会话ID。例如,

 $_SESSION[“member_id”], $_SESSION[“display_name”].