Skip to main content
CheckTown
验证工具

CSP 验证:检查内容安全策略响应头中的错误

发布于 阅读约 5 分钟
本文目录

什么是 CSP 校验?

内容安全策略(CSP)校验用于检查你的 CSP 响应头或 meta 标签是否正确定义了浏览器允许加载的资源。配置错误的 CSP 要么会拦截合法资源、导致站点损坏,要么过于宽松、留下安全隐患。

CSP 是浏览器抵御跨站脚本(XSS)和数据注入攻击最强大的安全机制之一。然而,它的指令语法很复杂,一个位置放错的关键字就可能从根本上改变策略所允许的内容。

CSP 校验器如何工作

CheckTown 的 CSP 校验器会解析你的策略字符串,检查语法错误、安全风险和常见配置错误。

  • 指令解析——对照 CSP 规范校验每个指令名称及其源值
  • 安全分析——标记过于宽松的源,如 unsafe-inline、unsafe-eval 和通配符域名
  • 弃用警告——识别已弃用的指令并建议其现代替代方案

免费试用 —— 无需注册

校验你的 CSP →

关键的 CSP 指令

CSP 使用指令来控制哪些类型的资源可以被加载,以及可以从何处加载。

  • default-src——针对未被更具体指令覆盖的所有资源类型的兜底策略
  • script-src——控制哪些脚本可以执行,是防范 XSS 最关键的指令
  • style-src——定义 CSS 样式表和内联样式的允许来源

何时使用 CSP 校验

在部署任何安全响应头的改动之前,CSP 校验都必不可少。

  • 策略编写——在编写 CSP 规则时进行校验,以便在部署前捕捉语法错误
  • 安全审计——检查现有的 CSP 响应头是否存在过于宽松的配置
  • CI 流水线——将 CSP 校验作为部署流程的一部分实现自动化

常见问题解答

unsafe-inline 是什么意思,什么时候需要它?

unsafe-inline 允许内联脚本和样式执行。它会显著削弱 XSS 防护,但在处理遗留代码时有时是必需的。更好的做法是使用基于 nonce 或 hash 的允许列表作为替代方案。

CSP 会导致我的网站出问题吗?

会。过于严格的 CSP 会拦截你的站点所依赖的合法资源。在强制实施之前,务必先使用 Content-Security-Policy-Report-Only 以仅报告模式测试新策略。

我应该使用 CSP meta 标签还是 HTTP 响应头?

更推荐使用 HTTP 响应头,因为它支持所有指令,且无法被注入的代码修改。meta 标签不支持 frame-ancestors 和 report-uri 指令。

相关工具