如何在 Tomcat web.xml 中添加标头?

Posted

技术标签:

【中文标题】如何在 Tomcat web.xml 中添加标头?【英文标题】:How do I add headers in Tomcat web.xml? 【发布时间】:2017-05-10 16:24:39 【问题描述】:

我们正在为我们的网站添加安全标头,并且正在尝试使用可用的选项。我们已经修复了 Apache 服务器中 httpd.conf 文件下的安全标头。

现在我们正在更新我们在 tomcat 上运行的网站的安全标头,我们在网上冲浪后尝试使用 goolge 上可用的选项。

我们需要更新我们网站的以下标题,任何人都可以帮助我们。

Strict-Transport-Security 
Content-Security-Policy 
X-Frame-Options 
X-XSS-Protection 
X-Content-Type-Options

【问题讨论】:

【参考方案1】:

使用

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">

  <filter>
    <filter-name>httpHeaderSecurity</filter-name>
    <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
    <init-param>
      <param-name>hstsEnabled</param-name>
      <param-value>true</param-value>
    </init-param>
    <init-param>
      <param-name>hstsMaxAgeSeconds</param-name>
      <param-value>2592000</param-value>
    </init-param>
    <init-param>
      <param-name>hstsIncludeSubDomains</param-name>
      <param-value>true</param-value>
    </init-param>      
    <init-param>
      <param-name>antiClickJackingEnabled</param-name>
      <param-value>true</param-value>
    </init-param>     
    <init-param>
      <param-name>antiClickJackingOption</param-name>
      <param-value>SAMEORIGIN</param-value>
    </init-param>  
    <init-param>
      <param-name>blockContentTypeSniffingEnabled</param-name>
      <param-value>true</param-value>
    </init-param>  
    <init-param>
      <param-name>xssProtectionEnabled</param-name>
      <param-value>true</param-value>
    </init-param> 
  </filter>
 <init-param>
    <param-name>cors.allowed.origins</param-name>
    <param-value>/*</param-value>
  </init-param>
  <filter-mapping>
    <filter-name>httpHeaderSecurity</filter-name>  
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  <filter>
    <filter-name>ExpiresFilter</filter-name>
    <filter-class>org.apache.catalina.filters.ExpiresFilter</filter-class>
    <init-param>
      <param-name>ExpiresDefault</param-name>
      <param-value>access plus 1 days</param-value>
    </init-param>
  </filter>

  <filter-mapping>
    <filter-name>ExpiresFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  
  <error-page>
    <location>/index.html</location>
  </error-page>
</web-app>

【讨论】:

这似乎没有启用Content-Security-Policy 标头?

以上是关于如何在 Tomcat web.xml 中添加标头?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Tomcat 中添加自定义标头?

idea中添加web.xml配置文件与tomcat启动中遇到的web.xml文件找不到的问题

xml 禁用xframes在web.xml中添加此项(如果yeoman使用yo web.xml)。在tomcat中我们可以在/ opt / tomcat / webapps / ROOT / WEB-

如何解决tomcat启动 ssm项目出现乱码

eclipse导入web项目,web.xml报错

如何禁用tomcat 7控制台调试信息