You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Tomcat9中通过web.xml配置添加Content Security Policy响应头

Tomcat配置Content Security Policy响应头方法

你完全可以使用和配置X-Frame响应头相同的web.xml修改方式添加CSP响应头,具体操作如下:

配置路径选择

  • 要对Tomcat下所有应用生效:修改Tomcat安装目录下的conf/web.xml文件
  • 仅对单个应用生效:修改对应应用目录下的WEB-INF/web.xml文件

具体配置步骤

如果你之前已经配置过X-Frame相关的HttpHeaderSecurityFilter,只需要在原有filter的init-param中新增CSP相关的参数即可,无需重复创建过滤器。
完整配置示例如下:

<filter>
  <filter-name>httpHeaderSecurity</filter-name>
  <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
  <async-supported>true</async-supported>
  
  <!-- 原有X-Frame相关配置可保留 -->
  <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>

  <!-- 新增CSP相关配置 -->
  <init-param>
    <param-name>contentSecurityPolicyEnabled</param-name>
    <param-value>true</param-value>
  </init-param>
  <!-- 此处为CSP规则示例,需根据自身业务场景调整 -->
  <init-param>
    <param-name>contentSecurityPolicy</param-name>
    <param-value>default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data:</param-value>
  </init-param>
</filter>

<!-- 过滤器映射,已配置过可跳过 -->
<filter-mapping>
  <filter-name>httpHeaderSecurity</filter-name>
  <url-pattern>/*</url-pattern>
  <dispatcher>REQUEST</dispatcher>
  <dispatcher>FORWARD</dispatcher>
  <dispatcher>INCLUDE</dispatcher>
  <dispatcher>ERROR</dispatcher>
</filter-mapping>

常用配置说明

  • 测试阶段可以开启仅上报模式,规则不实际拦截违规请求,方便调整CSP规则:
<init-param>
  <param-name>contentSecurityPolicyReportOnly</param-name>
  <param-value>true</param-value>
</init-param>
  • contentSecurityPolicy参数值完全遵循标准CSP语法,可根据业务需要自定义资源加载来源、是否允许内联脚本/样式等规则。

验证方式

配置完成后重启Tomcat,访问应用任意路径,在浏览器开发者工具的网络请求面板中查看响应头,确认存在Content-Security-Policy字段即配置成功。

内容的提问来源于stack exchange,提问作者Puneet Talwar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 21:06:10