【问题标题】:JSessionID is overwritten when switching between HTTP and HTTPS. How to solve?在 HTTP 和 HTTPS 之间切换时会覆盖 JSessionID。怎么解决?
【发布时间】:2011-08-01 12:59:39
【问题描述】:

我们有以下情况:

  1. 转到 http://website/ 并单击指向 http://website/appX 的链接
    检查 cookie 显示的 JSessionID 是否为 secure = NO。

  2. 打开另一个浏览器窗口或选项卡,然后转到 https://website/,然后单击指向 https://website/appY 的链接。 检查 cookie 显示的 JSessionID 是否为 secure = YES。

  3. 尝试与步骤 1 中创建的窗口/选项卡进行交互。我的会话已过期...

如果我们重复这些步骤,但在步骤 2 中使用 https://website/appX 而不是 https://website/appY,那么 JSessionID cookie 将保留为 Secure =没有。

所有 cookie 都有 JSessionId,最后附加了 jvmRoute。

--

我们正在使用:

Apache (2.2.3-43.el5_5.3) + mod_jk(带粘性会话)和负载平衡器配置到多个 JBoss 实例 (v 4.3.0)。

我只找到了一个完全相同问题的链接(通常其他的都使用 PHP): http://threebit.net/mail-archive/tomcat-users/msg17687.html

问:如何防止 JSessionId cookie 被重写?

【问题讨论】:

    标签: java cookies jboss load-balancing jsessionid


    【解决方案1】:

    从安全的角度来看,这是正确的行为,因为如果在 http 中也使用相同的 session id/cooki,攻击者可以窃取 https 中使用的 session id/cooki。

    更多详情见我的回答here

    所以如果你想构建一个安全的应用程序(我希望这个,因为你使用 https),那么你不能改变这个!

    【讨论】:

    • 谢谢。这也是我的信念......那么如果非 SSL 会话由于新的 SSL 会话而过期,那么 SSL 和非 SSL 怎么能共存呢?
    • @altosaxwannabe:让 HTTP 资源也可用于 HTTPS。
    • 我不确定你的意思,抱歉。它们已经可以通过 http:// 和 https://
    • @altosaxwannabe 抱歉,我将您的问题与我在回答中提到的问题混为一谈。
    【解决方案2】:

    从 HTTPS 切换到 HTTP 时,不会保留 SessionID/Cookie,反之亦然。您可以在 URL 中传递这些参数以传递值。

    【讨论】:

    • 嗨,如果我访问同一个应用程序,它们会被保留。 (即我可以交替使用 http://website/appX 和 https://website/appX)。
    【解决方案3】:

    在 deploy/jboss-web.deployer/server.xml 中的连接器配置(用于 JBoss 中的 Tomcat 捆绑版本)中,有一个 emptySessionPath 属性控制是否在上下文路径上设置会话 cookie。

    <Connector port="8080" address="${jboss.bind.address}"    
         maxThreads="250" maxHttpHeaderSize="8192"
         emptySessionPath="true" protocol="HTTP/1.1"
         enableLookups="false" redirectPort="8443" acceptCount="100"
         connectionTimeout="20000" disableUploadTimeout="true" /> 
    

    如果将此设置为 false,则每个应用程序将拥有一个 cookie,从而防止问题发生。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-11
      • 2014-11-27
      • 1970-01-01
      • 2011-10-20
      • 1970-01-01
      • 2019-05-01
      • 1970-01-01
      • 2012-08-17
      相关资源
      最近更新 更多