我们遇到以下情况:
转到 http://website/并点击 http://website/appX
的链接 检查 cookie 是否显示带有 secure = NO 的 JSessionID。打开另一个浏览器窗口或选项卡,然后转到 https://website/并点击 https://website/appY 的链接。< br/> 检查 cookie 是否显示带有 secure = YES 的 JSessionID。
尝试与步骤 1 中创建的窗口/选项卡进行交互。我的 session 已过期...
如果我们重复这些步骤,但在步骤 2 中使用 https://website/appX 而不是 https://website/appY,则 JSessionID cookie 仍保留为 Secure =没有。
所有 cookie 都有 JSessionId,最后附加 jvmRoute。
--
我们正在使用:
Apache (2.2.3-43.el5_5.3) + mod_jk(带粘性 session )和负载均衡器配置到多个 JBoss 实例 (v 4.3.0)。
我只找到了一个具有完全相同问题的链接(通常其他链接都使用 PHP): http://threebit.net/mail-archive/tomcat-users/msg17687.html
问:如何防止 JSessionId cookie 被重写?
最佳答案
从安全角度来看,这是正确的行为,因为如果在 http 中也使用相同的 session id/cooki,则攻击者可以窃取 https 中使用的 session id/cooki。
更多详情请参阅我的回答 here .
因此,如果您想构建一个安全的应用程序(我希望如此,因为您使用 https),那么您一定不能更改此设置!
关于java - 在 HTTP 和 HTTPS 之间切换时,JSessionID 会被覆盖。怎么解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5595916/