免费 · 无需账户

HTTP 安全响应头检测工具

在线检查公开网站的 HTTP 安全响应头。输入一个域名,查看八个关键安全响应头在最终响应中的评估结果,以及可显示时观察到的值。

仅检查公开、低影响信号。不扫描端口、不利用漏洞、不使用凭据、不访问私有目标。

无需注册 无破坏性流量 阻止私有网络
响应头参考

每个响应头的作用及评估方式

此工具在一个响应中读取这些响应头。大多数行是存在性检查:只要发送了该响应头就计入,并在可用时显示其值,方便你判断它是否适合你的网站。

响应头作用良好配置此工具的评估方式
Strict-Transport-Security让再次访问的浏览器在发出任何明文 HTTP 请求之前,自动切换到 HTTPS。逐步上线完成后使用较长的 max-age(180 天或更长);各阶段见指南。HTTPS 目标缺少此头:中。输入 http:// 地址时不评估。
Content-Security-Policy为浏览器提供页面代码和内容允许使用的来源清单。根据页面实际使用的资源制定的策略,不含宽泛的脚本例外。缺失:中。会显示其值,但不审查内容。
X-Frame-Options · frame-ancestors阻止其他网站在自己的框架中显示你的页面。在 CSP 中使用 frame-ancestors,并以 X-Frame-Options 作为旧浏览器的后备。两者都没有:中。
X-Content-Type-Options让浏览器信任每个响应声明的内容类型。唯一的值 nosniff。缺失或为其他任何值:低。
Referrer-Policy限制访客点击你的链接时,其他网站能看到你的页面地址的哪一部分。至少与当前浏览器默认值同样严格的策略。缺失:低。
Access-Control-Allow-Origin决定哪些其他网站的脚本可以读取你的响应。普通页面不发送,或只指定一个可信的 origin。通配符(*):中。
Server · X-Powered-By公开响应背后的软件。删除,或改为通用值。存在任何 Server 或 X-Powered-By 头:低,即使没有版本号。只显示识别出的技术名称。
Set-Cookie设置 Cookie;其属性决定哪些脚本可以读取它们以及何时发送。会话 Cookie 对脚本隐藏,并且只通过 HTTPS 发送。此响应中的 Cookie 缺少 HttpOnly,或在 HTTPS 下缺少 Secure:中。不检查 SameSite,也从不显示 Cookie 值。

Permissions-Policy 和 Cross-Origin-Opener-Policy 不在此页面评估。上线准备 Snapshot 只在单独的加固等级中计入它们。

解读结果

如何理解每种状态。

  1. 01通过找到了该响应头,并通过存在性检查。
  2. 02低 · 中 · 高某项缺失,或其设置方式被此检查标记。级别与完整 Snapshot 使用的相同。
  3. 03已观察记录了一个值,但检查既未判定通过,也未产生发现。
  4. 04未观察到检查已运行,但没有可记录的内容,例如响应中没有 Cookie。
  5. 05不适用该检查不适用,例如输入 http:// 地址时的 HSTS。
  6. 06未测量未收到可用的响应,因此该检查不计为通过。
范围

此工具不做的事。

  1. 01只请求你输入的 origin 的首页。会丢弃 path 和 query,不请求其他页面。
  2. 02主要检查响应头是否存在,而不是其值是否适合你的网站。
  3. 03只有在你输入 http:// 地址时才测试 HTTP 到 HTTPS 的重定向;那次运行会跳过 TLS,也不会报告缺少 HSTS。
  4. 04它不是漏洞扫描或渗透测试,也不发送攻击流量。
  5. 05结果是某个响应在某一时刻的状态;CDN 规则或其他页面可能发送不同的响应头。
常见问题

关于响应头检查的问题。

为什么没有版本号的 Server: nginx 也会被标记?

任何 Server 或 X-Powered-By 头都评为低,因为仅名称就会告诉访客网站运行的是什么软件。如果平台允许,请删除该头或改为通用值。

为什么结果与我的服务器配置不同?

此工具读取最多五次重定向后收到的响应。起作用的是 CDN、代理或托管平台添加或删除后的响应头;CDN、代理或机器人防护规则对浏览器的响应也可能与对此工具的不同。

我可以检查不属于我的网站吗?

可以。响应头检查读取的是网站本来就发送给每位访客的一个普通响应;完整运行还会为其他检查再发送几次普通请求。受保护模块和完整审计需要已验证目标或明确授权。

这是漏洞扫描吗?

不是。这是对响应头的被动检查,不是漏洞扫描或渗透测试,也不能证明网站是安全的。