安全响应头检测工具
只需输入网站URL,即可检测HSTS、CSP、X-Frame-Options等主要安全响应头的配置情况,列出缺失或设置不当的项目,并提供改进建议。
诊断线上站点的安全标头
输入网址,服务器便会去取那个站点的响应标头,并判定 HSTS、CSP、X-Frame-Options、X-Content-Type-Options、Referrer-Policy 与 Permissions-Policy 的配置状况。它把「缺失的」与「已设但偏弱的」分开列出,并逐项说明问题何在。
**这里值得记在心上的是:标头「有」与标头「有效」,本是两回事。** 譬如 HSTS 纵然设了,`max-age` 若太短,浏览器强制 HTTPS 的窗口便不够长,实际的保护也就薄了。本工具之所以把合格与警告分开,缘故正在于此。**另一点是:返回来的标头未必出自源站。** CDN 或反向代理可能在半途加上它们,若是如此,该去修改配置的地方也随之不同。诊断所呈现的是「由外看去的样子」,至于是哪一层加的,它无从告知。
使用方法
- 输入待查的网址 请给出以 `https://` 开头、外部可达的网址。
- 执行检查 **出于安全,私有 IP 地址之类外部无法抵达的目标会被拒绝。**
- 阅读判定 分合格、警告、不合格三档,警告意味着「有,但偏弱」。
- 照着说明去修正 每一项都附有问题所在的说明,可据以排定先后。
用好本工具的小技巧
- 本工具在服务器端获取目标网站的URL,因此不受浏览器CORS限制,可以检测任意网站的响应头。
- HSTS的max-age基本上设置得越长越安全,但如果计划调整证书运维方式,建议先用较短的值测试后再应用到生产环境。
- 搭配姊妹工具CSP验证器使用,可对Content-Security-Policy的语法进行更详细的检测。
- 本工具采用与robots.txt检测工具相同的「输入URL后由服务器端获取」机制,只要是无需认证的公开页面,任意网站都可作为检测对象。
- 建议定期检测自己的网站,确认CDN或反向代理的配置变更是否在不知不觉中导致某些安全响应头丢失。
这些场景会用到
上线前做最后确认
就在发布之前,可从外部确认所期望的标头是否真的返回了。
借鉴他人站点的配置
**看看同类站点做到了哪一步,便有了衡量自家水准的尺子。**
比对改动前后
加上标头之后再查一次,确认它已然生效。
检视接手过来的站点
**它适合交接之后的盘点**,可列出所缺的项目。
安全标头的术语
- HSTS
- 迫使访问走 HTTPS 而非 HTTP 的标头。**除非 `max-age` 有一年以上,保护的时长便不够。**
- X-Content-Type-Options
- 设为 `nosniff` 可让浏览器不再由内容去猜 MIME 类型,从而避免文件被当作别的东西执行。
- X-Frame-Options
- 拒绝让您的站点被嵌入框架的标头。**在较新的策略里,CSP 的 `frame-ancestors` 担起了同样的角色。**
- Content-Security-Policy
- 限制可加载资源从何而来的机制,是防御 XSS 的中枢。
- Referrer-Policy
- 决定访客转往别的站点时,交出多少来源网址的标头。
- Permissions-Policy
- 控制哪些来源可使用摄像头、麦克风与位置等功能的标头。
常见问题
闲话 ― securityheaders.com与点击劫持防护的历史
通过HTTP响应头诊断安全设置的服务中,Scott Helme开发的securityheaders.com长期以来被视为事实标准。由于许多海外服务仅提供英文的诊断结果和改进说明,Toolbase作为该领域的替代方案,自行开发了这款可用中文一并确认诊断结果与改进原因的检测工具。
HSTS(HTTP Strict Transport Security)是IETF于2012年作为RFC 6797标准化的响应头。其诞生背景是2009年被实际演示的一种名为"SSL剥离(SSL Stripping)"的攻击手法:当用户省略输入https://时,浏览器会先以HTTP方式连接一瞬间,攻击者正是利用这一瞬间篡改通信内容。HSTS让浏览器记住"该域名必须始终以HTTPS方式访问",从而在首次访问之后防止降级攻击。
X-Frame-Options最初是微软于2009年为Internet Explorer 8引入的专有扩展响应头,后来被其他浏览器采纳并成为事实标准。当时受到关注的问题是"点击劫持"攻击,即将透明的iframe叠加在看似真实的按钮之上,使用户在不知情的情况下完成点击。如今业界正逐步转向更灵活的Content-Security-Policy中的frame-ancestors指令,但为了兼容不支持该指令的旧版浏览器,同时设置两者仍是目前推荐的做法。