java - 在 HTTP 和 HTTPS 之间切换时,JSessionID 会被覆盖。怎么解决?

标签 java cookies jboss load-balancing jsessionid

我们遇到以下情况:

  1. 转到 http://website/并点击 http://website/appX
    的链接 检查 cookie 是否显示带有 secure = NO 的 JSessionID。

  2. 打开另一个浏览器窗口或选项卡,然后转到 https://website/并点击 https://website/appY 的链接。< br/> 检查 cookie 是否显示带有 secure = YES 的 JSessionID。

  3. 尝试与步骤 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/

相关文章:

java - Spring Data JPA - 如何将查询结果转换为实体类

java服务包装器

javascript - 互联网广告商和第三方 Cookie - 澄清一下?

java - JBOSS AS7 jax-rs jaas 和注释

jboss - ActiveMQ - 客户端已连接但有相同的 clientId 错误

java - Junit:尽管两个字符串相等,Assert.assertNotSame 返回 true

java - 在服务器端创建具有自动完成功能的查询

linux - NGINX cookie 免费域配置设置小问题

javascript - 如何使用其他站点的登录信息发出 JavaScript 请求

jenkins - 如何从 Jenkins 启动 JBoss?