春季安全会话标识符未更新
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 问题以请求团队考虑将设置设为默认值。以上是关于春季安全会话标识符未更新的主要内容,如果未能解决你的问题,请参考以下文章