AZ Tools

Content-Security-Policy 构建器

网络

通过逐指令表单组装 Content-Security-Policy 头。每个指令接受以空格分隔的源列表('self'、'none'、'unsafe-inline' 等关键字,或方案/主机源)。该工具会标记包含 unsafe-inline、unsafe-eval 或通配符的策略,从输出中省略空指令,并同时生成响应头形式与等效的 <meta> 标签。在向生产环境推出新策略时切换到 report-only 模式。

预设
指令
响应头
Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data:; font-src 'self'; connect-src 'self'; object-src 'none'; base-uri 'self'; frame-ancestors 'none'
<meta> 标签
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data:; font-src 'self'; connect-src 'self'; object-src 'none'; base-uri 'self'; frame-ancestors 'none'">

空指令回退到 default-src。先设置 default-src 'self',再单独收紧具体源。

使用方法

  1. 从预设开始(Strict 全部锁定为 'self',Relaxed 允许内联与通配符,API-only 阻止导航)。
  2. 编辑每个指令 — 留空表示丢弃。
  3. 发布新策略时开启 report-only:违规会被报告但不被阻止。

常见问题

应使用响应头还是 <meta> 标签?
首选 HTTP 响应头。<meta> 形式在你无法编辑响应头(静态托管等)时方便,但它无法定义 frame-ancestors 或 report-uri/report-to,因此严格来说能力更弱。
为什么通配符会给警告?
源列表中的 * 匹配任何 URL,完全削弱策略。请将源固定到特定来源或使用 'self'——如果确实需要第三方脚本,请显式列出。

相关工具