如何检查警卫是否在我的网站上对抗CSRF攻击?

时间:2014-02-03 14:49:21

标签: java web-applications csrf owasp

我有我用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>

- 编辑

我在请求中检查了令牌。没有发送令牌。我错过了什么?

1 个答案:

答案 0 :(得分:0)

它说,如果令牌不存在,那么HTTP请求将被忽略。因此,您应该获得一个浏览器扩展,以便您查看HTTP请求。然后,复制其中一个请求并省略安全令牌,看它是否丢弃了您的请求。

  

当用户与此HTML交互时,CSRF预防令牌(即   随机提交加密随机同步器令牌)   相应的HTTP请求。这是OWASP的责任   CSRFGuard确保令牌存在且对当前有效   HTTP请求。 尝试向受保护资源提交请求   没有正确的相应令牌被视为CSRF攻击   进步并被丢弃。在放弃请求之前,CSRFGuard   可以配置为执行一个或多个操作,例如记录方面   请求并将用户重定向到登录页面。