CSRF Web应用程序漏洞

时间:2018-06-14 12:24:10

标签: java security tomcat6

如何防止Servlet中的CSRF?我在网上搜索了这个并发现以下过滤器配置会阻止,但我想了解这些过滤器配置是如何工作的。

<filter>
<filter-name>CSRFPreventionFilter</filter-name>
<filter-class>
org.apache.catalina.filters.CsrfPreventionFilter
</filter-class>
<init-param>
<param-name>entryPoints</param-name>
<param-value>/PATH</param-value>
</init-param>
</filter
<filter-mapping>
<filter-name>CSRFPreventionFilter</filter-name>
<url-pattern>/PATH/*</url-pattern>
</filter-mapping> 

I am using Tomcat 6 server and java 6.

1 个答案:

答案 0 :(得分:0)

请阅读the source code。它非常简短。

摘录:

String previousNonce =
    req.getParameter(Constants.CSRF_NONCE_REQUEST_PARAM);

if (nonceCache == null || previousNonce == null ||
        !nonceCache.contains(previousNonce)) {
    res.sendError(getDenyStatus());
    return;
}

如何使用过滤器:
https://tomcat.apache.org/tomcat-6.0-doc/config/filter.html#CSRF_Prevention_Filter

有关CSRF的更多详情:
https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet