Content-Security-Policy 请求头生成器

逐条指令地构建 Content-Security-Policy 请求头,带来源标签,并生成可直接复制的 meta、nginx 和 Apache 代码片段。一切都在你的浏览器中运行。

CSP 生成器完全在你的浏览器中运行。你为构建 Content-Security-Policy 而输入的指令、主机和方案绝不会离开你的设备,也不会上传到 ArrayKit。

打开 Cache-Control 请求头生成器

关于 CSP 生成器

CSP 生成器逐条指令地构建一个 Content-Security-Policy 请求头。通过点击像 'self'、'none'、'unsafe-inline'、data: 和 https: 这样的来源标签,或输入像 cdn.example.com 这样的自定义主机,来填入 default-src、script-src、style-src、img-src、connect-src、font-src、frame-src 等等。关键字来源会为你加上单引号,而主机和方案保持裸露,因此策略始终有效。空指令会被自动丢弃,一切都以规范顺序输出。切换「仅报告」开关,可在强制执行之前以监控模式测试策略,然后复制原始请求头、一个 HTML meta 标签,或可直接粘贴的 nginx 和 Apache 代码片段。它为在浏览器中加固站点、抵御 XSS 和点击劫持的开发者打造——你构建的策略绝不离开你的设备。

功能特性

如何使用 CSP 生成器

  1. 点击来源标签或输入一个主机,为你需要的每条指令添加来源
  2. 把你不需要的指令留空——它们会从输出中被丢弃
  3. 如果想在强制执行前监控违规,切换「仅报告」
  4. 复制 Content-Security-Policy 请求头值,或 meta、nginx 或 Apache 代码片段

示例

输入

default-src: 'self'
script-src: 'self' https:
img-src: 'self' data:
object-src: 'none'

输出

Content-Security-Policy: default-src 'self'; script-src 'self' https:; img-src 'self' data:; object-src 'none'

像 'self' 这样的关键字会被加引号;像 https: 和 data: 这样的方案保持裸露。

常见错误与故障排除

常见问题

这个 CSP 生成器会产生什么?
它根据你选择的指令和来源构建一个完整的 Content-Security-Policy 请求头值,然后给你原始请求头、一个 HTML meta 标签,以及可粘贴进你配置的 nginx 和 Apache add_header 代码片段。
哪些 CSP 来源会加单引号,哪些不会?
关键字来源如 'self'、'none'、'unsafe-inline'、'unsafe-eval' 和 'strict-dynamic',以及 nonce 和 hash,都会加单引号。像 https:、data: 和 cdn.example.com 这样的主机和方案保持裸露。工具会为你正确地加引号。
仅报告开关有什么用?
它把请求头名称切换为 Content-Security-Policy-Report-Only,该请求头会报告违规而不阻止任何东西。用它在实时站点上试运行一个新策略,并在强制执行前观察控制台。
我可以把整个策略作为一个 CSP meta 标签来投放吗?
多数情况下可以——工具会为强制执行的策略输出一个 <meta http-equiv> 标签。但 frame-ancestors、report-uri、report-to 和 sandbox 在 meta 标签中会被忽略,因此当你的策略依赖它们时请使用 HTTP 请求头代码片段。
为什么请求头会略去我没有填写的指令?
没有来源的指令会被丢弃,以使输出保持整洁有效。default-src 会作为任何你留空的 fetch 指令的回退,因此你只需覆盖那些不同的指令。
构建 CSP 请求头会把我的主机发送到任何地方吗?
不会。CSP 生成器完全在你的浏览器中运行。你输入的指令和主机都留在你的设备上,绝不会上传到 ArrayKit。

相关工具

全部 ArrayKit 工具