我正在尝试理解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
)
答案 0 :(得分:2)
如果用户访问www.app1.com,该应用会拨打电话 www.app2.com加载数据,是两个jsessionId创建 - 每个一个 域?
是。更准确地说,每个单独的WebApp都会为其域发布自己的cookie。因此,如果映射了不同的Web应用程序,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服务器。)
答案 1 :(得分:1)
JSESSIONID
是会话Cookie。此Cookie设置了domain
,因此在您的情况下,您将拥有2个Cookie,这两个Cookie在JSESSIONID
属性中都有domain
个不同的路径。