我有我用maven构建的这个项目。我想确保跨站点请求伪造警卫(this link)正在每个页面上运行。 在mvn clean install之后,web.xml,pom.xml,属性文件和csrfguard.jar以正确的方式出现。
如何检查警卫是否正常工作,如果不工作,我做错了什么?
由于
添加到pom.xml:
<dependency>
<groupId>org.owasp</groupId>
<artifactId>csrfguard</artifactId>
</dependency>
添加到web.xml:
<filter-name>CSRFGuard</filter-name>
<filter-class>org.owasp.csrf.CSRFGuard</filter-class>
<init-param>
<param-name>error-page</param-name>
<param-value>/page/error</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CSRFGuard</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<context-param>
<param-name>Owasp.CsrfGuard.Config</param-name>
<param-value>WEB-INF/Owasp.CsrfGuard.properties</param-value>
</context-param>
<context-param>
<param-name>Owasp.CsrfGuard.Config.Print</param-name>
<param-value>true</param-value>
</context-param>
<listener>
<listener-class>org.owasp.csrfguard.CsrfGuardServletContextListener</listener-class>
</listener>
<listener>
<listener-class>org.owasp.csrfguard.CsrfGuardHttpSessionListener</listener-class>
</listener>
- 编辑
我在请求中检查了令牌。没有发送令牌。我错过了什么?
答案 0 :(得分:0)
它说,如果令牌不存在,那么HTTP请求将被忽略。因此,您应该获得一个浏览器扩展,以便您查看HTTP请求。然后,复制其中一个请求并省略安全令牌,看它是否丢弃了您的请求。
当用户与此HTML交互时,CSRF预防令牌(即 随机提交加密随机同步器令牌) 相应的HTTP请求。这是OWASP的责任 CSRFGuard确保令牌存在且对当前有效 HTTP请求。 尝试向受保护资源提交请求 没有正确的相应令牌被视为CSRF攻击 进步并被丢弃。在放弃请求之前,CSRFGuard 可以配置为执行一个或多个操作,例如记录方面 请求并将用户重定向到登录页面。