会话劫持:抑制会话ID的过滤器的优缺点

时间:2010-11-03 18:36:31

标签: java security session cookies servlets

我正在尝试解决ATG / JBoss / Tomcat站点上的会话固定/劫持/侧面劫持问题。似乎到目前为止,最常见的建议是:

  1. 在用户登录时为其授予新会话。这可以防止攻击者预测受害者的会话ID。我首先尝试了这种方法,但我担心it may not work in my case

  2. 在URL中传递会话ID(SID)时,使用servlet filter使会话无效。此过滤器还会阻止URL重写以创建具有SID

  3. 的链接

    #2的优点和缺点是什么?我想到的一些:

    赞成

    1. 这似乎比#1更广泛的保护:#1防止恶意URL传递给受害者,#2防止任何获取SID的手段(不安全的无线网络,访问机器等) - 你可以' t只传递你想要使用请求参数的SID!
    2. 缺点

      1. 将为未启用Cookie的用户拍摄会话管理。
      2. 普通用户如果点击指定了jsessionid的链接就会被注销,但由于过滤器的行为,我不相信系统中会有任何合法的链接。

2 个答案:

答案 0 :(得分:2)

2是停止Session Fixation

您还需要考虑CSRF又称“会话骑行”。 Here是防止CSRF的方法。

最终不要忘记最被忽视的OWASP,OWASP A9 - Insufficient Transport Layer Protection。这意味着您的会话ID必须始终通过HTTPS 传输。如果你不这样做,那么有人可以使用Firesheep来获取帐户。

答案 1 :(得分:1)

您可以在会话中存储一个变量,其中包含用户的IP,用户代理等,或者它们的散列,并检查每个请求,以便在被劫持时劫机者必须伪造这些变量。

不完美但有帮助。