网络应用程序安全指南/会话固定
外观
在会话固定攻击中,攻击者会创建一个未经身份验证的会话,然后诱使用户使用并验证该会话。一旦用户完成身份验证,攻击者便可以利用该会话,因为他知道会话 ID。
防止此类攻击
- 在用户登录时重新生成(更改)会话 ID(销毁旧会话)
- 通过仅从 cookie 接受会话 ID,而不是从 GET 或 POST 参数接受,来阻止攻击者让用户使用他的会话(PHP:php.ini 设置“session.use_only_cookies”)
基本原理
重新生成 ID 使旧会话 ID 对攻击者毫无价值。即使攻击者设法固定会话,他的会话也永远不会被验证。第二种对策旨在使固定会话变得不可能。但是,XSS 或相同域(不一定是非子域!)上其他应用程序的类似问题可能会允许攻击者设置错误的 cookie。