我们遇到以下情况:
Go to http://website/ 并单击链接http://网站/appX
检查 cookie 是否显示 JSessionID 且 secure = NO。
打开另一个浏览器窗口或选项卡并转到https://website/ 并单击链接https://网站/appY。
检查 cookie 是否显示 JSessionID 且 secure = YES。
尝试与步骤 1 中创建的窗口/选项卡进行交互。我的会话已过期...
如果我们重复这些步骤但使用https://website/appX 而不是https://website/appY 在步骤 2 中,然后 JSessionID cookie 保留 Secure=NO。
所有 cookie 都有 JSessionId,最后附加 jvmRoute。
--
我们正在使用:
Apache (2.2.3-43.el5_5.3) + mod_jk(带粘性会话)和配置到多个 JBoss 实例的负载均衡器(v 4.3.0)。
我只找到了一个具有完全相同问题的链接(通常其他链接都使用 PHP):http://twobit.net/mail-archive/tomcat-users/msg17687.html http://threebit.net/mail-archive/tomcat-users/msg17687.html
问:如何防止 JSessionId cookie 被重写?
从安全角度来看,这是正确的行为,因为如果在 http 中也使用相同的会话 id/cooki,则攻击者可以窃取 https 中使用的会话 id/cooki。
更详细的可以看我的回答here https://stackoverflow.com/questions/5545074/spring-security-remember-me-authentication-from-https-to-http-cookie-writing-fail/5548581#5548581.
因此,如果您想构建一个安全的应用程序(我希望如此,因为您使用 https),那么您一定不要更改它!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)