Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 556

HTTP 严格传输安全(HSTS)

审核人Cybersecurity entrepreneur & security researcher

HTTP 严格传输安全(HSTS) 是什么?

HTTP 严格传输安全(HSTS)通过 HTTP 响应头声明的 Web 安全策略,指示浏览器在指定时间内只能通过 HTTPS 访问某个域名。


HSTS 在 RFC 6797 中定义,通过 Strict-Transport-Security 响应头进行声明。兼容的浏览器经 HTTPS 收到该头后,会在声明的 max-age 内记住该策略,并将之后对该主机(可选地包括子域名)的所有请求自动升级为 HTTPS;若 TLS 握手或证书验证失败,则拒绝连接。该机制可有效抵御 SSL 剥离攻击(Moxie Marlinspike 于 2009 年发布的 sslstrip)以及明文上的 Cookie 注入。

HSTS 存在一个结构性弱点:首次使用信任(trust-on-first-use)。在浏览器第一次看到该头之前,这第一次请求仍可能被拦截并降级。预加载列表(preload list)——一份硬编码进 Chromium、Firefox、Safari 与 Edge 的集合——通过随浏览器分发策略来弥补这一缺口,使首次访问也被强制走 HTTPS。提交要求 max-age 至少为 31536000(一年)、includeSubDomains 以及 preload 指令,通过 hstspreload.org 完成。Google Registry 将 .dev.app 等整个 gTLD 预加载,因此其下所有域名默认仅支持 HTTPS。注意:从预加载列表移除的传播很慢,所以只有在能长期坚持全站 HTTPS 时才应启用 preload。

flowchart TD
  A[浏览器首次访问] -->|尚无策略| B{在预加载列表中?}
  B -->|是| C[立即强制 HTTPS]
  B -->|否| D[可能发生明文请求 - TOFU 风险]
  D --> E[服务器发送 Strict-Transport-Security 头]
  E --> F[浏览器按 max-age 缓存策略]
  F --> G[后续所有请求自动升级为 HTTPS]
  G -->|证书无效| H[硬失败,不可点击绕过]

示例

  1. 01

    Strict-Transport-Security: max-age=63072000; includeSubDomains; preload

  2. 02

    银行将其顶级域名提交到 Chromium 的 HSTS 预加载列表。

常见问题

HTTP 严格传输安全(HSTS) 是什么?

通过 HTTP 响应头声明的 Web 安全策略,指示浏览器在指定时间内只能通过 HTTPS 访问某个域名。 它属于网络安全的 网络安全 分类。

HTTP 严格传输安全(HSTS) 是什么意思?

通过 HTTP 响应头声明的 Web 安全策略,指示浏览器在指定时间内只能通过 HTTPS 访问某个域名。

如何防御 HTTP 严格传输安全(HSTS)?

针对 HTTP 严格传输安全(HSTS) 的防御通常结合技术控制与运营实践,详见上方完整定义。

HTTP 严格传输安全(HSTS) 还有哪些其他名称?

常见的别称包括: Strict-Transport-Security, HSTS 头。

相关术语

另见