security - 在 tomcat 6.0.32 中使用 CSRF 过滤器时出现 403 错误

标签 security tomcat csrf

这是我在 web.xml 中的文件管理器配置

<filter>
    <filter-name>CSRFPreventionFilter</filter-name>
    <filter-class>org.apache.catalina.filters.CsrfPreventionFilter</filter-class>
    <init-param>
        <param-name>entryPoints</param-name>
        <param-value>/login<param-value>
    </init-param>
</filter>

<filter-mapping>
    <filter-name>CSRFPreventionFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
<filter>

我错过了什么吗?是否需要进行任何代码更改以在 tomcat 中启用 csrf 保护

最佳答案

请注意,403CSRFPreventionFilter如果未提供随机数且过滤器需要一个随机数,则响应。

我不知道 CSRFPreventionFilter 的当前状态,但根据 this thread您需要单独指定每个 entryPoint 资源(无通配符) - 或者将过滤器应用于不包含 /login

的路径

所以:

<filter>
<filter-name>CSRFPreventionFilter</filter-name>
<filter-class>org.apache.catalina.filters.CsrfPreventionFilter</filter-class>
<init-param>
    <param-name>entryPoints</param-name>
    <param-value>/login/login.html,/login/image.png,/login/style.css</param-value>
</init-param>
</filter>

或者:

<filter-mapping>
<filter-name>CSRFPreventionFilter</filter-name>
<url-pattern>/csrf/*</url-pattern>
</filter-mapping>

2012 年 12 月更新:

Tomcat 7.0.32修复了 CSRFPreventionFilter

中的安全漏洞

关于security - 在 tomcat 6.0.32 中使用 CSRF 过滤器时出现 403 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13151768/

相关文章:

security - 如何在 ColdFusion 中获取 MD5 哈希值?

java - Tomcat Java Memory 选项保存在哪个文件中

java - Handler处理失败;嵌套异常是 java.lang.NoClassDefFoundError : sun/io/ByteToCharConverter

html - "no-referrer"元标记不起作用

javascript - IndexedDB 与 Cookie 安全性

iphone - 加密存储在 iCloud 中的文档的方法

maven-2 - 在多个服务器上使用 Tomcat Maven 插件

reactjs - 如何使用 Axios 将 CSRF Coo​​kie 从 React 发送到 Django Rest Framework

angularjs - 使用 AngularJS 和 SpringSecurity3.2 进行 CSRF

c - 将证书插入钥匙串(keychain)