【问题标题】:Understanding JSessionId across multiple domains了解跨多个域的 JSessionId
【发布时间】:2011-09-20 00:04:33
【问题描述】:

我试图了解 JSessionId 的唯一性和范围,因为它涉及多个不相关的域。

我已经阅读了Under what conditions is a JSESSIONID created?,但仍有一些问题——

具体来说:

如果用户访问www.app1.com,并且该应用调用www.app2.com 以加载数据,是否会创建两个jsessionId - 每个域一个?

同样,当呼叫转到www.app2.com 时,是否传递了来自www.app1.com 的有关 jsessionid 的任何信息?

重定向对此有何影响? (例如,请求http://app1.com/login.jsp 重定向到http://app2.com/login.jsp

【问题讨论】:

    标签: java jsessionid


    【解决方案1】:

    如果用户访问 www.app1.com,并且该应用调用 www.app2.com 加载数据,创建了两个 jsessionId - 每个一个 域?

    是的。更准确地说,每个单独的 WebApp 都会为其域发布自己的 cookie。所以如果映射了不同的 webapp,www.app1.com/1 和 www.app1.com/2 会有不同的 cookie。

    同样,当呼叫转到 www.app2.com 时,是否有任何信息 关于从 www.app1.com 传过来的 jsessionid?

    不,但请阅读有关 XSS 和 CSRF 的内容,了解为什么保护您的应用程序是好的,因为注入将您的 cookie 传递到另一个 url 的脚本并不难。

    重定向对此有何影响? (例如,请求 http://app1.com/login.jsp 重定向到 http://app2.com/login.jsp)

    什么都没有。如果您碰巧已经登录了两者,那么您可能会在之后登录。注销一个不会影响另一个。 (如果您想要真正的单点登录/单点注销,则两个应用都必须信任第三方,例如 CAS 服务器或 Kerberos 服务器)。

    【讨论】:

      【解决方案2】:

      JSESSIONID 是会话 cookie。此 cookie 有一个 domain 集,因此在您的情况下,您将有 2 个 cookie,都称为 JSESSIONID,在其 domain 属性中具有不同的路径。

      【讨论】:

        猜你喜欢
        • 2012-10-29
        • 2011-03-14
        • 2012-12-21
        • 2013-02-24
        • 2011-06-25
        • 2018-05-14
        • 1970-01-01
        • 2013-11-01
        • 1970-01-01
        相关资源
        最近更新 更多