網路應用程式安全指南/會話固定
外觀
在會話固定攻擊中,攻擊者會建立一個未經身份驗證的會話,然後誘使使用者使用並驗證該會話。一旦使用者完成身份驗證,攻擊者便可以利用該會話,因為他知道會話 ID。
防止此類攻擊
- 在使用者登入時重新生成(更改)會話 ID(銷燬舊會話)
- 透過僅從 cookie 接受會話 ID,而不是從 GET 或 POST 引數接受,來阻止攻擊者讓使用者使用他的會話(PHP:php.ini 設定“session.use_only_cookies”)
基本原理
重新生成 ID 使舊會話 ID 對攻擊者毫無價值。即使攻擊者設法固定會話,他的會話也永遠不會被驗證。第二種對策旨在使固定會話變得不可能。但是,XSS 或相同域(不一定是非子域!)上其他應用程式的類似問題可能會允許攻擊者設定錯誤的 cookie。