用户登录和会话劫持后的Spring Security cookie

时间:2010-11-25 09:35:37

标签: java spring spring-security session-hijacking

据我了解,当用户登录Spring Security时会使Session失效并创建一个新会话。
因此,如果我来自具有明确sessionID cookie的http,Spring Security应该设置一个新的sessionID'安全'cookie,只有在后续的https请求中才会被浏览器发回。 我缺少的是当'登录'用户从https切换到http时,必须有一个sessionID cookie作为非安全cookie存储在某处以跟踪会话。
我不明白Spring如何管理它 用户登录后,如果他浏览到http,则清除sessionID cookie与安全SessionID相同,是否对全世界可见?有人可以阅读并劫持会议 我不明白Spring Security流程能否有人解释我它是如何工作的? 谢谢

1 个答案:

答案 0 :(得分:0)

出于上述原因,最好不要混用HTTP和HTTPS会话。事实上它似乎通过HTTPS登录然后回退到HTTP不会工作(因为浏览器不会发送安全的会话cookie)。

  

[...]会话已创建   在HTTPS下,为其进行会话   cookie被标记为“安全”,不能   随后在HTTP下使用。该   浏览器不会发回cookie   到服务器和任何会话状态   将丢失(包括安全   上下文信息)。开始了   HTTP中的会话首先应该工作   会话cookie不会被标记为   安全(您还必须禁用   Spring Security的会话修复   保护支持,以防止它   在登录时创建新的安全会话   (您始终可以创建新会话   你自己在后期)。注意   在HTTP和HTTPS之间切换   一般来说,这不是一个好主意   完全使用HTTP的应用程序   容易受到中间人的影响   攻击。为了真正安全,用户   应该开始访问您的网站   HTTPS并继续使用它直到它们   登出。甚至点击HTTPS   来自通过HTTP访问的页面的链接是   潜在的风险。

来自http://static.springsource.org/spring-security/site/faq.html