Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用Tomcat';CSRFS预防过滤器?_Java_Jsp_Tomcat - Fatal编程技术网

Java 如何使用Tomcat';CSRFS预防过滤器?

Java 如何使用Tomcat';CSRFS预防过滤器?,java,jsp,tomcat,Java,Jsp,Tomcat,在我的Tomcat 6.0.xx上,Tomcat的CSRFPrevention过滤器工作正常。我现在想将一个页面列为白名单(,也就是说,使其免于应用于它的过滤器)。在web.xml中的下,我有许多URL模式,其中之一是: /secure/* 此URL模式包含约50个JSP页面。然而,我想把这50页中的一页列为白名单。我希望不必将其他49个页面全部添加到web.xml。是否只需将一个页面列入白名单?尝试init paramparamentryPoints跳过url,这里是home。对多个URL使用

在我的Tomcat 6.0.xx上,Tomcat的CSRFPrevention过滤器工作正常。我现在想将一个页面列为白名单(,也就是说,使其免于应用于它的过滤器)。在
web.xml
中的
下,我有许多URL模式,其中之一是:

/secure/*


此URL模式包含约50个JSP页面。然而,我想把这50页中的一页列为白名单。我希望不必将其他49个页面全部添加到
web.xml
。是否只需将一个页面列入白名单?

尝试
init param
param
entryPoints
跳过url,这里是
home
。对多个URL使用csv:

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

CsrfFilter
org.apache.catalina.filters.CsrfPreventionFilter
入口点
/家
属性:入口点

描述:将不测试以逗号分隔的URL列表 用于显示有效的nonce。它们被用来提供一种 在导航离开后导航回受保护的应用程序 从它。入口点将限于HTTP GET请求,应该 不会触发任何安全敏感操作

(来源:)

在您的特定问题案例中,您仅排除1项

<filter>
    <filter-name>CSRFPreventionFilter</filter-name>
    <filter-class>org.apache.catalina.filters.CsrfPreventionFilter</filter-class>

    <init-param>
        <param-name>entryPoints</param-name>
        <param-value>/secure/foo.jsp</param-value>
    </init-param>
</filter>

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

防止过滤器
org.apache.catalina.filters.CsrfPreventionFilter
入口点
/secure/foo.jsp
防止过滤器
/稳妥/*

为了通用性,我举了一个例子,排除2个JSP页面和1个CSS文件,在顶级web应用程序目录中设置过滤器。

<!-- CSRF Prevention Filter -->
<filter>
    <filter-name>CSRFPreventionFilter</filter-name>
    <filter-class>org.apache.catalina.filters.CsrfPreventionFilter</filter-class>

    <init-param>
        <param-name>entryPoints</param-name>
        <param-value>/web/pages/foo.jsp,/web/pages/bar.jsp,/web/en_US/css/style.css</param-value>
    </init-param>
</filter>

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

防止过滤器
org.apache.catalina.filters.CsrfPreventionFilter
入口点
/web/pages/foo.jsp、/web/pages/bar.jsp、/web/en_US/css/style.css
防止过滤器
/*
阅读更多:将有助于清楚地解决问题