跳到正文

← 全部工具

面向网站开发者的免费工具

安全响应头检查器

粘贴你网站的 HTTP 响应头(对你的网址运行 curl -sI,把输出贴进来),本页会告诉你哪些安全响应头缺失或偏弱,用大白话解释,并给出改好的一行。网页本身读不到别的网站的响应头,所以需要你粘贴;粘贴的内容不会离开你的浏览器。

怎么拿到响应头

在终端(Mac、Linux)或 PowerShell 里换成你自己的网址运行,然后把输出的内容整段粘贴进来:

curl -sI https://example.com/

网页读不到别的网站的响应头:浏览器有意禁止这样做,而且在这里去请求那个网址,看到的只是我们自己的连接,并不是你的访客收到的内容。所以需要你粘贴。你粘贴的内容不会离开本页。也可以从浏览器里复制:开发者工具的 Network(网络)标签,点第一个请求,找到 Response Headers(响应头)。

粘贴响应头后会显示结果。

它能做什么

  • •读取你粘贴的响应头,名称大小写都可以;如果粘贴的是一条跳转链(curl 每跳转一次会多打印一段),就检查最后一个响应。
  • •检查 Strict-Transport-Security(max-age、includeSubDomains、预加载要求)、Content-Security-Policy(脚本规则里的 unsafe-inline 和 unsafe-eval、通配符和 http: 来源、缺少 object-src、base-uri、frame-ancestors、default-src 回退、仅报告与正式生效的区别)、X-Frame-Options 与 frame-ancestors 的关系、X-Content-Type-Options、Referrer-Policy、Permissions-Policy、Cross-Origin-Opener-Policy 和 Cross-Origin-Resource-Policy、已弃用的 X-XSS-Protection,以及 Server 和 X-Powered-By 里暴露的版本信息。
  • •每项结果标为“没问题”“建议复查”或“需要修改”,用大白话解释,并给出改好的响应头,最后汇总成一段可以直接复制的建议响应头。
  • •规则依据 MDN 的响应头参考页和 OWASP Secure Headers Project,核对于 2026-11-01。本页对每项检查给出通过、复查或修改的结果,不打字母分数。

它不做什么

  • •它不会去访问你的网站,只读取你粘贴的文字,所以看不到因页面、国家、Cookie 或浏览器不同而变化的响应头。请检查你真正关心的那个页面。
  • •它不测试你的策略能否正常工作。这里看起来很严的 Content-Security-Policy 仍可能让页面出问题;看起来没问题的也可能有响应头检查看不出的缺口,比如允许了一个会托管用户内容的主机上的脚本。
  • •它不检查 Cookie、TLS 设置、证书,也不检查 http 到 https 的跳转,而 HSTS 预加载列表也要求这些。
  • •写在 HTML <meta> 标签里的设置不属于响应头,所以看不到。

常见问题

怎么拿到我网站的响应头?
在终端运行 curl -sI https://你的网址/ ,把输出整段粘贴进来。加上 -L 可以跟随跳转。在浏览器里,打开开发者工具,进入 Network(网络)标签,刷新,点第一个请求,复制 Response Headers(响应头)。请检查你想保护的那个页面,而不只是首页。
为什么这个页面不能直接替我检查网址?
浏览器不允许一个网站读取另一个网站的响应头,而且从本页发出的请求看到的是我们自己的连接,不是你的访客拿到的内容。需要粘贴也意味着你网站的任何信息都不会发给我们。
Strict-Transport-Security 应该怎么设?
常见的设置是 Strict-Transport-Security: max-age=31536000; includeSubDomains,意思是让浏览器在一年内只用 https 访问本站及其子域名。只有当所有子域名都支持 https,并且你打算把域名提交到浏览器的预加载列表时才加 preload,这一步很难撤回。
我的 Content-Security-Policy 里有 'unsafe-inline',这很糟吗?
对脚本来说是的:有 'unsafe-inline' 又没有 nonce 或哈希,攻击者只要注入一段内联脚本就会运行,而这正是 CSP 要防的主要问题。把脚本移到文件里,或使用 nonce 或哈希即可解决。样式里的 'unsafe-inline' 风险小得多。本页标出的是脚本这种情况。
X-Frame-Options 和 frame-ancestors 需要都设吗?
Content-Security-Policy 里的 frame-ancestors 是现代做法,新版浏览器优先使用它。X-Frame-Options(DENY 或 SAMEORIGIN)仍被许多网站用来兼容很老的浏览器。设一个就够了;两个都发也行,只要意思一致。
应该去掉 X-XSS-Protection 吗?
设为 0 或者删掉。它控制的浏览器过滤器已从新版浏览器中移除,在旧版本里它自己还可能制造漏洞。现在这件事交给一个好的 Content-Security-Policy。

相关工具