and*_*dev 17 spring spring-mvc spring-security
目前我正在寻找在Spring MVC和Spring Security表单中包含CRSF令牌的可能性.什么是最简单的解决方案,涵盖(Spring Security + Spring MVC)servlet并允许呈现和评估CSRF令牌?
我很惊讶这种基本机制在Springs堆栈中不可用.(我认为每个Web应用程序框架都是基本的)
PS:我看过HDIV但是找不到与Spring Security一起使用它的解决方案.(例如,登录表单由Spring MVC呈现,登录请求由Spring Security处理)
更新(2014年1月):Spring Security 3.2包含CSRF令牌实现.
对于Spring Security <= 3.1:
因为CSRF与Spring Secruity(身份验证和授权)有关,所以它们可以彼此分开实现.
有一些基于过滤器的CRSF实现.例如,Tomcat 7和Tomcat 6.0.something附带了一个
当我尝试使用它们(2011年夏天)时,我感觉不是很好.所以我实现了自己的.
编辑(2012年4月):我的实现适用于Spring 3.0,如果你使用的是Spring 3.1,那么看看Eyal Lupu的答案和他的博客它使用了一些Spring 3.1功能,因此过滤器处理更容易.
到目前为止我还没有公开(没时间).但是你将.你可以下载它(这是我第一次使用4shared.com,我希望它有效):
我的实现的缺点是,您需要将提示显式添加到提交POST,DELETE,PUT的每个表单.
JSP(X):
xmlns:crsf="http://www.humanfork.de/tags/de/humanfork/security/crsf"
...
<form ...>
<crsf:hiddenCrsfNonce/>
....
</form>
Run Code Online (Sandbox Code Playgroud)
web.xml中
<filter>
<filter-name>IdempotentCrsfPreventionFilter</filter-name>
<filter-class>de.humanfork.security.crsf.IdempotentCsrfPreventionFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>IdempotentCrsfPreventionFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)
使用Spring Security 3.2.0.RC1提供了CSRF保护功能.还有一个包含AJAX请求的解决方案.
见http://www.springsource.org/node/22675和http://spring.io/blog/2013/08/21/spring-security-3-2-0-rc1-highlights-csrf-protection/
| 归档时间: |
|
| 查看次数: |
22564 次 |
| 最近记录: |