跳转到内容

网络应用程序安全指南/会话固定

来自维基教科书,开放的书籍,面向开放的世界

会话固定

在会话固定攻击中,攻击者会创建一个未经身份验证的会话,然后诱使用户使用并验证该会话。一旦用户完成身份验证,攻击者便可以利用该会话,因为他知道会话 ID。

防止此类攻击

  • 在用户登录时重新生成(更改)会话 ID(销毁旧会话)
  • 通过仅从 cookie 接受会话 ID,而不是从 GET 或 POST 参数接受,来阻止攻击者让用户使用他的会话(PHP:php.ini 设置“session.use_only_cookies”)

基本原理

重新生成 ID 使旧会话 ID 对攻击者毫无价值。即使攻击者设法固定会话,他的会话也永远不会被验证。第二种对策旨在使固定会话变得不可能。但是,XSS 或相同域(不一定是非子域!)上其他应用程序的类似问题可能会允许攻击者设置错误的 cookie。

华夏公益教科书