传输与浏览器保护

TLS与安全响应头:保护连接和浏览器

HTTPS保护连接;安全响应头影响浏览器如何处理响应。应同时审计这两层,并在真实登录、付款和内容流程中验证策略变化。

加密连接穿过多层浏览器安全策略的概念插图
概念插图

锁形图标无法告诉你证书明天是否会续期,也无法说明陌生网站能否嵌入你的页面。TLS和HTTP响应策略解决不同问题。一起检查有助于分清紧急可用性故障和缺少的防御层。

Sitelemetry的TLS模块记录信任结果、有效期和协商协议;响应头模块检查真实响应,保留最终URL、状态和观察到的值。这些是修复工作的起点,不是应用已经完成全面渗透测试的证明。

此审计的范围

可以测量什么

  • 测试连接的TLS信任结果、证书有效日期、签发者和协商协议。
  • 观察到的HSTS、CSP、框架嵌入防护、内容类型保护、来源策略及部分信息公开/CORS迹象。
  • 扫描实际收到的Cookie安全属性,以及受支持的成功检查。

不能证明什么

  • 一次协商得到的TLS版本不是所有受支持协议和密码套件的完整枚举。
  • 公开响应不会展示所有登录态Cookie或每条路由的策略。
  • TLS或网络导致无法获得HTTP响应时,响应头为未测量,而不是自动判定缺失。

请扫描经过验证且获得授权的目标。套餐与配置决定模块,额外引擎还需满足自身可用条件。比较结果之前先查看覆盖范围。

区分证书错误和策略发现

证书过期可能立刻阻止客户访问,缺少来源策略则有不同后果与紧迫性。先查看主机名、最终跳转目标、到期时间和实际信任错误。问题发生在CDN边缘、源站,还是某个特定主机?根域名的有效证书并不自动覆盖全部子域名。

原生TLS检查会提示观察到的旧协议和临近到期。连接协商为TLS 1.3不能证明旧版本已被禁用。如果需要这种保证,应检查TLS终止配置,并执行范围适当的协议评估。

按实际影响排序

发现通常优先级有用证据
证书过期或不受信任主机名、日期和信任错误
证书即将到期中;剩余时间越短越紧急剩余天数和续期状态
缺少HSTS、CSP或框架防护常为中,取决于应用场景实际响应头和页面
缺少nosniff或来源策略通常低值与内容类型
公开资源使用CORS通配符结合场景审核数据敏感性和预期使用方

缺少CSP并不证明存在XSS,有CSP也不代表XSS不可能发生。公开资源的CORS通配符可能是有意设置。涉及私有数据时,应调查真实认证和Origin行为。不要把每个策略观察都说成已确认的数据泄露。

根据证据逐步部署CSP

整理脚本、字体、图片、连接、框架和支付提供商。强制之前先使用Content-Security-Policy-Report-Only。报告模式可发现兼容性问题,但不会阻止对应动作。如需集中报告,配置合适的接收地址。

Content-Security-Policy-Report-Only: default-src 'self'; object-src 'none'; base-uri 'self'; frame-ancestors 'self'

这只是起点示例,不是通用生产策略。外部服务可能需要明确来源,脚本可能需要nonce或哈希。测试注册、OAuth弹窗、付款、同意选项及错误页。解决合法功能引发的违规后,再把经过审核的策略改为强制响应头。不要只为消除报告而添加宽泛通配符。

把HSTS视为运维承诺

HSTS要求支持它的浏览器在记忆期限内使用HTTPS。延长期限前,先确认HTTPS可靠且证书能正常续期。从受控的短期限开始,观察稳定后再增加。

includeSubDomains也影响子域名,应先审核旧服务和委派主机。预加载有浏览器列表的要求,移除也可能较慢。把preload写进响应头并不会自动提交域名。不要为了消除扫描警告,直接复制长期限、覆盖所有子域名的配置。

检查客户实际收到的响应

修改实际TLS终止点和生成响应的层。如果CDN覆盖响应头,源站文件配置正确也可能无效。多个层重复添加的策略还可能相互影响。应对比主页、登录、应用和错误路由的最终响应,而非只查看一个配置文件。

会话Cookie按需使用SecureHttpOnly,根据真实跨站流程选择SameSite。JavaScript可读取的偏好Cookie不同于会话令牌。nosniff应配合正确MIME类型。减少不必要的版本公开不等于给旧软件打补丁。各控制的作用可参考OWASP响应头指南

同时复测安全与功能

  1. 确认目标主机提供可信证书和预期有效日期。
  2. 在重定向和缓存更新之后检查实际策略值。
  3. 在支持的浏览器中测试注册、登录、退出、付款和必要嵌入。
  4. 重复相同模块,查看发现和未完成检查。
  5. 保留证书续期监控及经过测试的策略回退方案。

若握手间歇失败,应先保存错误并从另一个相关网络复测,再判断整个网站是否不可用。成功复测解决的是该观察,不是所有传输风险。更全面的检查可参考OWASP TLS指南

常见问题

Report-Only会消除CSP缺失提示吗?

它是不强制执行的测试阶段。部署可用的Content-Security-Policy响应头之前,报告仍可能提示缺少强制策略。

应该立即启用HSTS预加载吗?

只有在确认要求、子域名准备情况和运维后果后才考虑。它并非适合所有域名的安全默认值。

证书失败时为什么响应头未测量?

经过验证的HTTPS请求没有返回可用响应头。TLS错误是证据,但不能把缺少HTTP响应转化成多个虚构的响应头缺失。

来源与延伸阅读

  1. MDN:CSP报告模式developer.mozilla.org
  2. MDN:HTTP Strict Transport Securitydeveloper.mozilla.org
  3. OWASP:HTTP响应头cheatsheetseries.owasp.org
  4. OWASP:TLS安全指南cheatsheetseries.owasp.org
Sitelemetry 团队

由 Sitelemetry 团队根据产品审计范围和链接的一手资料编写。除明确标注的实际观察案例外,示例均用于说明。

SITELEMETRY

将指南付诸实践。

查看报告中的证据,修复根本原因,然后重新运行相关检查。

打开 Sitelemetry