我正在尝试解决ATG / JBoss / Tomcat站点上的会话固定/劫持/侧面劫持问题。似乎到目前为止,最常见的建议是:
在用户登录时为其授予新会话。这可以防止攻击者预测受害者的会话ID。我首先尝试了这种方法,但我担心it may not work in my case
在URL中传递会话ID(SID)时,使用servlet filter使会话无效。此过滤器还会阻止URL重写以创建具有SID
#2的优点和缺点是什么?我想到的一些:
赞成:
缺点:
答案 0 :(得分:2)
2是停止Session Fixation。
您还需要考虑CSRF又称“会话骑行”。 Here是防止CSRF的方法。
最终不要忘记最被忽视的OWASP,OWASP A9 - Insufficient Transport Layer Protection。这意味着您的会话ID必须始终通过HTTPS 传输。如果你不这样做,那么有人可以使用Firesheep来获取帐户。
答案 1 :(得分:1)
您可以在会话中存储一个变量,其中包含用户的IP,用户代理等,或者它们的散列,并检查每个请求,以便在被劫持时劫机者必须伪造这些变量。
不完美但有帮助。