会话固定和会话标识符之间的差异未更新


Differences between Session Fixation and Session Identifier not Updated

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

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

威胁分类:会话固定

我为每个请求生成新的cookie,我相信这就是我们解决会话固定问题的方法。这是正确的吗?

我想问的一个重要问题是-"会话固定"answers"会话标识符未更新"之间有什么区别

您是否在每次会话更改状态时都更改会话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(当用户登录/注销时)。

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

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