内容安全策略生成器
这款内容安全策略生成器以可视化方式构建 Content-Security-Policy 响应头,让你精确控制浏览器可以加载哪些脚本、样式、图片和其他资源。打开你需要的指令、点选你信任的来源,完整的响应头会即时生成——直接粘贴到你的 Web 服务器即可使用。
Content-Security-Policy 是抵御跨站脚本(XSS)、点击劫持及其他注入攻击的第一道防线。没有它,浏览器会加载来自任意源的资源;配置好策略后,只有你允许的域名才能提供内容。本工具会把这套策略生成为可直接复制的响应头,格式完全贴合你的技术栈——原始 HTTP、Apache、Nginx、HTML meta 标签,或 PHP 的 header() 调用。
如何使用内容安全策略生成器
选择一个起点
选择一个预设来加载常用配置——严格、基础网站、SPA + API、WordPress、电商或 CDN——或从空白开始从零搭建。
配置指令
点击开关或指令标题行即可启用某个指令。然后点击 'self'、'none' 或 'unsafe-inline' 等快捷来源按钮,或输入像 cdn.example.com 这样的自定义域名并点击添加。再次点击某个来源即可将其移除。
查看警告提示
在你构建的同时,工具会分析你的策略并标出问题——红色错误对应真实风险,如缺少 object-src 或使用通配符来源;黄色警告对应薄弱之处;蓝色提示则给出有用的背景说明。
选择格式并复制
把输出选项卡切换到原始、Apache、Nginx、Meta 标签或 PHP 以匹配你的服务器,然后点击复制。先启用 Report-Only 即可在不拦截任何内容的情况下测试策略。
功能特性
可视化指令构建器
每个指令都是一行带开关的交互项。启用后即可展开其来源面板,内含快捷添加按钮和自定义域名输入框。
17 个 CSP 指令
覆盖资源加载、文档、导航和其他四类中的所有常用指令——从 default-src、script-src 到 frame-ancestors 和 report-uri。
快捷来源按钮
一键添加常用值:'self'、'none'、'unsafe-inline'、'unsafe-eval'、'strict-dynamic'、data:、blob: 和 https:。
7 个预设模板
用为真实技术栈量身打造的空白、严格、基础网站、SPA + API、WordPress、电商和 CDN 配置快速起步。
实时安全分析
实时警告会标出脚本中的 'unsafe-inline' 和 'unsafe-eval'、缺失的 object-src 或 base-uri,以及削弱策略的通配符来源。
5 种输出格式
可导出为原始 HTTP 响应头、Apache 指令、Nginx 的 add_header、HTML meta 标签或 PHP 的 header() 调用——满足你的服务器所需。
Report-Only 模式
将响应头切换为 Content-Security-Policy-Report-Only,在调优策略时只监控违规而不拦截资源。
智能来源逻辑
选择 'none' 会清除其他来源(二者互斥),添加任意来源会移除 'none',并自动防止重复添加。
一键复制
一键将生成的响应头复制到剪贴板,再直接粘贴到你的服务器配置中。
完全在本地运行
一切都在你的浏览器中运行,没有服务器请求、没有跟踪,你的策略始终留在自己的设备上。
常见问题
内容安全策略(CSP)响应头是什么?
Content-Security-Policy 是一个 HTTP 响应头,它告诉浏览器允许从哪些来源加载页面上的脚本、样式、图片、字体和其他资源。它是抵御跨站脚本(XSS)及其他注入攻击最有效的手段之一,因为任何来自未授权来源的内容都会被拦截。
如何为我的网站创建 CSP 响应头?
从严格或基础网站等预设开始,或从空白起步。启用你需要的指令,点选或输入你信任的来源,响应头会随之即时生成。然后为你的服务器选择输出格式并点击复制——无需死记指令语法。
该用 CSP meta 标签还是响应头?
响应头是功能更完整的方案。HTML 的 <meta> 标签无法使用 Report-Only 模式、无法设置 frame-ancestors,也无法使用 report-uri。只有在无法设置服务器响应头时才使用 meta 标签;否则请优先选择 Apache、Nginx 或 PHP 输出,以获得完整的 CSP 功能。
default-src 和 script-src 是什么意思?
default-src 是你未显式设置的所有资源加载指令的回退值——因此 default-src 'self' 会把未指定的资源类型限制为只能来自你自己的域名。script-src 控制 JavaScript 可以从哪里加载,而你显式设置的任何指令都会针对该资源类型覆盖 default-src。
如何在不破坏网站的前提下测试 CSP?
启用 Report-Only 模式。此时工具会输出 Content-Security-Policy-Report-Only 响应头,它只记录违规而不拦截任何资源。观察这些报告、调整你的来源,等策略干净无误后,再切换到强制执行的 Content-Security-Policy 响应头。
'unsafe-inline' 真的有那么危险吗?
是的。在 script-src 中允许 'unsafe-inline' 会让任何内联脚本都能运行——包括攻击者通过 XSS 漏洞注入的脚本——这基本上会让 CSP 的防护形同虚设。本工具会为你标出这一点。建议改用 nonce 或哈希,它们能放行特定的内联脚本,同时仍拦截被注入的脚本。
为什么应该始终加上 object-src 'none'?
object-src 指令控制 Flash、Java applet 等插件,这些插件可以运行任意代码并绕过其他 CSP 防护。设置 object-src 'none' 会拦截所有插件内容,而现代网站很少需要插件,因此它是一个安全且推荐的默认值——工具会在它缺失时发出警告。
还没有评论,快来发表第一条!