我正在研究如何保护网站免遭其会话 cookie 被盗。这些是我知道广为人知/使用的控件:
- HTTPS 无处不在
- 仅使用安全创建的随机字符串作为 cookie 值
- 将会话 cookie 标记为 Secure 和 HttpOnly
- 登录时更改会话 cookie
我正在使用我在Tomcat bug tracker中找到的建议进行辩论。对于每个会话存储以下附加信息:
- SSL 会话 ID
- HTTP 用户代理
- 远程 IP 地址
在每个请求上,我都会验证三个存储值中的两个是否与会话中捕获的值匹配。这样一来,三者之一可能会因各种原因而改变,而不会影响用户。普通用户每次请求更改一个以上的可能性很小。
这看起来像是对会话 cookie 的合理额外防御吗?