春季安全会话标识符未更新

Posted

技术标签:

【中文标题】春季安全会话标识符未更新【英文标题】:spring security session identifier not updated 【发布时间】:2015-01-17 22:21:45 【问题描述】:

我们在实验室中使用 IBM appscan 扫描了 Spring 安全应用程序,并且出现“会话标识符未更新”中等警报。一切都是默认的,它在 Tomcat 下运行。所以这是 Tomcat 问题还是 Spring Security 问题?我们对此感到有些困惑,因为它应该是一种流行的开箱即用组合

原始请求: j_username&j_password

然后它被发布到: http://localhost/j_spring_security_checkj

原始回复 POST /sp/j_spring_security_check HTTP/1.1Content-Type: application/x-www-form-urlencodedCookie: JSESSIONID=14FF774AB81BC86D988D588AC2555BE6Accept-Language: en-USAaccept: text/html,application/xhtml+xml,application/xml;q =0.9,/;q=0.8Referer: http://localhost/sp/Host: localhost 用户代理:Mozilla/5.0(兼容;MSIE 9.0;Windows NT 6.1;WOW64;Trident/5.0)内容长度: 23j_username=&j_password=

Appscan 似乎在抱怨: 测试结果似乎表明存在漏洞,因为原始请求(左侧)和响应(右侧)中的会话标识符是相同的。它们应该已在响应中更新。

【问题讨论】:

【参考方案1】:

AppScan 报告该应用程序可能是Session Fixation Attacks 的潜在目标。

Spring Security 文档中有一个section 专门用于防止此类攻击。您将需要尝试本节中提到的 newSession 设置来消除 AppScan 警告。

【讨论】:

什么我不明白,spring security已经流行了一段时间了,怎么还容易受到这种攻击呢? 易受攻击的不是 Spring Security,而是 Web 应用程序。 Spring Security 通过将 session-fixation-protection 设置为 newSession 来帮助防止攻击。默认情况下不这样做,因为 Spring Security 不知道应用程序如何使用 HTTP 会话。您可以提出 JIRA 问题以请求团队考虑将设置设为默认值。

以上是关于春季安全会话标识符未更新的主要内容,如果未能解决你的问题,请参考以下文章

会话标示未更新解决方案

春季安全会话到期

春季安全删除用户 - 会话仍处于活动状态

OAuth2用户详细信息未在春季安全(SpringBoot)中更新

春季安全会话超时

春季安全会话超时