以下是基于spring框架3.2.4的应用程序的本教程。
http://springdiaries.blogspot.be/2012/12/web-security-preventing-csrf-attack.html#comment-form
关键是,我已经检查了会话中的所有对象,并且没有找到任何带有键OWASP_CSRFTOKEN的对象,也就是说,在工作不正常的情况下,会出现悬念吗?
发布于 2015-10-18 08:33:15
这并不完全是对您的问题的回答,不幸的是,如果没有神奇的水晶球^^,这个问题的回答太模糊了,但是以下是一些您应该尝试的方法:
unprotected配置文件中定义的Owasp.CsrfGuard.properties模式之一相匹配的URL (这些值来自OWASP文档;您应该设置不同的):。
org.owasp.csrfguard.unprotected.Tag=/Owasp.CsrfGuard.Test/tag.jsp
org.owasp.csrfguard.unprotected.JavaScriptServlet=/Owasp.CsrfGuard.Test/JavaScriptServlet
org.owasp.csrfguard.unprotected.Html=*.html
org.owasp.csrfguard.unprotected.Public=/MySite/Public/*- [Configuration](https://www.owasp.org/index.php/CSRFGuard_3_Configuration)
- [Installation](https://www.owasp.org/index.php/CSRFGuard_3_Installation)
- [User Manual](https://www.owasp.org/index.php/CSRFGuard_3_User_Manual)
无论如何,您都不必修改您的DB模式。这不是OWASP保护的工作方式(生成的令牌存储在会话中,而不是持久化在数据库中)。
还值得一提的是,您正在跟踪一篇过时的博客文章:如果您正在使用Spring,则根本不需要使用OWASP保护。您应该使用具有内置CSRF保护的spring安全身份验证,这要容易得多.
请参阅教程在这页上,介绍如何使用CSRF保护来设置基于HTML + SQL数据库的身份验证(另外,不要错过bcrypt密码散列;设置起来非常容易,在某些时候,您会很高兴存储安全散列而不是明文密码)。
您将看到,您也不必修改db来使用spring安全性添加CSRF保护,因为CSRF保护令牌是会话存储的。
这个装置需要5-15分钟,而春天的新萤火石最多需要30分钟。简而言之,框架负责生成和验证令牌,并对无效请求返回身份验证错误。
只需在spring-security.xml配置文件<http>标记中包含<http>标记即可。
如果使用基于html表单的身份验证,还必须在表单中包含以下隐藏输入:
<input type="hidden" name="${_csrf.parameterName}"
value="${_csrf.token}" />https://stackoverflow.com/questions/33041997
复制相似问题