首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Web安全:防止CSRF攻击

Web安全:防止CSRF攻击
EN

Stack Overflow用户
提问于 2015-10-09 15:24:49
回答 1查看 1.3K关注 0票数 4

以下是基于spring框架3.2.4的应用程序的本教程。

http://springdiaries.blogspot.be/2012/12/web-security-preventing-csrf-attack.html#comment-form

关键是,我已经检查了会话中的所有对象,并且没有找到任何带有键OWASP_CSRFTOKEN的对象,也就是说,在工作不正常的情况下,会出现悬念吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-18 08:33:15

这并不完全是对您的问题的回答,不幸的是,如果没有神奇的水晶球^^,这个问题的回答太模糊了,但是以下是一些您应该尝试的方法:

  • 请检查您的请求不是来自一个与在unprotected配置文件中定义的Owasp.CsrfGuard.properties模式之一相匹配的URL (这些值来自OWASP文档;您应该设置不同的):

代码语言:javascript
复制
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/*
  • 在启动/应用程序加载和接收客户端请求时,检查web服务器/ servlet容器日志中是否存在错误。
  • 设置断点这里这里,并以调试模式启动应用程序,以确保正在加载类并请求令牌。
  • 逐个检查所有配置参数。
  • 仔细阅读项目wiki和文档:
代码语言:javascript
复制
- [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表单的身份验证,还必须在表单中包含以下隐藏输入:

代码语言:javascript
复制
<input type="hidden" name="${_csrf.parameterName}"
            value="${_csrf.token}" />
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33041997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档