CSP 内容安全策略生成
CSP Builder
按引导表单或一份违规报告生成 Content-Security-Policy,并逐条解释每个指令。
Content-Security-Policy 这个响应头能把一个跨站脚本漏洞从“被攻陷”变成“控制台里一条被拦截的消息”,它也是最常以一种什么都不做的形式上线的响应头。这里逐条指令地搭建它,并解释每一条实际在防什么。
载入现有策略
你没有单独设置的取回类指令,都回落到它。
脚本可以从哪里加载。真正挡住 XSS 的就是这一条。
样式表可以从哪里加载。
图片可以从哪里加载。
字体可以从哪里加载。
fetch、XHR、WebSocket 和 EventSource 可以连到哪里。
<audio> 和 <video> 可以从哪里加载。
<object>/<embed> 可以从哪里加载。一般设成 'none' 最省事。
<iframe> 里的文档可以从哪里加载。
谁可以把这个页面放进框架——X-Frame-Options 的现代替代品。
<base href> 可以被设成什么。限制到 'self' 或 'none'。
表单可以提交到哪里。
Worker、SharedWorker 和 service worker 可以从哪里加载。
Web 应用清单可以从哪里加载。
把 http:// 的子资源请求改写成 https://。
直接拦掉所有 http:// 子资源(旧规范)。
- ⚠ 没有 frame-ancestors:加上它(比如 'none' 或 'self')来决定谁能把这个页面放进框架。
- ⚠ 没有 base-uri:加一条 base-uri 'self',挡住 <base> 标签注入。
Content-Security-Policy
default-src 'self'; script-src 'self'怎么用
从表单或者从报告开始
引导式表单会问脚本、样式、图片和连接各来自哪里。如果你已经有违规报告,把它们粘进来,来源就从实际加载过的东西里推导出来。
先以仅报告模式部署
`Content-Security-Policy-Report-Only` 只记录违规,不拦截。跑上一周,报告会点出那个谁都不记得的第三方嵌入。
最后再去掉 `unsafe-inline`,而且要去得干净
带着 `script-src 'unsafe-inline'` 的策略几乎什么都拦不住。换成每次响应一个 nonce,或者内联块的哈希——两种形式工具都能生成。
常见问题
这个工具会测试我的站点吗?
不会。它根据你告诉它的内容来组合并解释一份策略。检查一个在线站点当前发送了什么,是安全响应头体检工具的活。
为什么我的策略还是允许内联脚本?
出于向后兼容,当 `unsafe-inline` 和 nonce 或哈希同时出现在 `script-src` 里时,nonce 和哈希会被忽略。两者不能都留——回退的那个会赢。
只写 `default-src 'self'` 够吗?
它是个不错的基础,但有几条指令不会回退到它——`frame-ancestors`、`form-action` 和 `base-uri` 就在其中。这些必须显式设置,这个工具会设置它们。
可以从这些接进来
SRI 完整性哈希生成
Subresource Integrity Hash
为你粘贴或拖进来的脚本、样式表算出 Subresource Integrity 属性(sha256/384/512)。
CORS 跨域检测
CORS Tester
从你指定的来源发出浏览器会发的预检请求,再带上同一个 Origin 发一次 GET,并按 Fetch 标准的规则说清究竟是哪个响应头把它挡住了。
安全响应头体检
Security Header Scan
给站点的 HSTS、CSP、框架、referrer 和权限相关响应头打分,并说明还该补上哪些。
密码生成器
Password Generator
按长度、字符集和是否排除易混字符的规则生成随机密码,需要的话可以一次生成很多条。
接下来
这些工具吃得下当前工具的产出,结果可以直接送过去。
CORS 跨域检测
CORS Tester
从你指定的来源发出浏览器会发的预检请求,再带上同一个 Origin 发一次 GET,并按 Fetch 标准的规则说清究竟是哪个响应头把它挡住了。
HTTP 响应头检测
HTTP Header Inspector
请求一个网址,列出完整的响应头、跳转链路、各段耗时和实际用到的压缩方式。
安全响应头体检
Security Header Scan
给站点的 HSTS、CSP、框架、referrer 和权限相关响应头打分,并说明还该补上哪些。
SRI 完整性哈希生成
Subresource Integrity Hash
为你粘贴或拖进来的脚本、样式表算出 Subresource Integrity 属性(sha256/384/512)。
可疑链接检查
Suspicious URL Check
在你点开之前先看这条链接长什么样——混淆字符、直接写 IP 的主机、@ 障眼法、层层子域、奇怪端口、短链服务——需要时还能追踪跳转并查域名注册时间;没有信誉库。
Base64 编码解码
Base64 Encoder & Decoder
对文本和文件做 Base64 与 Base64URL 编解码,UTF-8 处理正确。