©
This document usesPHP Chinese website manualRelease
Strict-Transport-Security
响应报头(通常缩写为 HSTS)是一种安全功能,可以让一个网站告诉大家,它应该只使用 HTTPS,而不是使用 HTTP 进行通信的浏览器。
Header type |
Response header |
---|---|
Forbidden header name |
no |
Strict-Transport-Security: max-age=Strict-Transport-Security: max-age= ; includeSubDomains Strict-Transport-Security: max-age= ; preload
max-age=
以秒为单位,浏览器应该记住,该站点只能通过 HTTPS 访问。includeSubDomains
可选如果指定了此可选参数,则此规则也适用于所有网站的子域。preload
可选参见预装严格的运输安全细节。不是规范的一部分。
如果网站通过 HTTP 接受连接并重定向到 HTTPS,则在此情况下,用户最初可能会在重定向之前与网站的非加密版本进行通话,例如,如果用户键入 http://www.foo .com / 甚至只是 foo.com。
这就为中间人攻击提供了可能性,在这种攻击中,可以利用重定向将用户引导至恶意站点,而不是原始页面的安全版本。
HTTP Strict Transport Security 头允许网站通知浏览器它不应该使用HTTP加载站点,而应该自动将所有尝试使用 HTTP 访问站点的尝试转换为 HTTPS 请求。
注:Strict-Transport-Security
头忽略浏览器时,您的站点使用HTTP访问; 这是因为攻击者可能会拦截 HTTP 连接并注入头部或将其删除。当通过 HTTPS 访问您的站点而不出现证书错误时,浏览器知道您的站点具有 HTTPS 功能,并会兑现Strict-Transport-Security
标题。
您登录机场的免费 WiFi 接入点并开始浏览网页,访问您的网上银行服务以检查您的余额并支付几笔账单。不幸的是,您使用的接入点实际上是黑客的笔记本电脑,它们拦截您的原始 HTTP 请求,并将您重定向到银行网站的克隆而不是真实的东西。现在你的私人数据暴露给黑客。
严格的交通安全解决了这个问题。只要您使用 HTTPS 访问过您的银行网站,并且该银行的网站使用严格的传输安全性,您的浏览器就会知道只会自动使用 HTTPS,这可以防止黑客执行这种“中间人”攻击。
您的网站首次使用 HTTPS 访问并返回Strict-Transport-Security
标题时,浏览器会记录此信息,以便将来尝试使用 HTTP 加载网站时会自动使用 HTTPS。
当 Strict-Transport-Security 标头指定的到期时间过去时,下一次通过 HTTP 加载站点的尝试将照常进行,而不是自动使用 HTTPS。
无论何时将 Strict-Transport-Security 头传递给浏览器,它都会更新该站点的到期时间,以便站点可以刷新此信息并防止超时过期。如果需要禁用严格传输安全性,则将 max-age 设置为0(通过 https 连接)将立即使Strict-Transport-Security
标题失效,从而允许通过 http 访问。
Google 维护一个 HSTS 预加载服务。按照指南并成功提交您的域名,浏览器将永远不会使用不安全的连接连接到您的域名。虽然该服务由 Google 托管,但所有浏览器都表示有意使用(或实际开始使用)预加载列表。
有关 Chrome 中的 HSTS 预加载列表的信息:https://www.chromium.org/hsts
Firefox HSTS 预载列表的咨询:nsSTSPreloadList.inc
所有现在和将来的子域名都是 HTTPS,最大年龄为1年。这会阻止访问只能通过 HTTP 提供服务的页面或子域。
Strict-Transport-Security: max-age=31536000; includeSubDomains
Specification |
Status |
Comment |
---|---|---|
HTTP Strict Transport Security (HSTS) |
IETF RFC |
Initial definition |
Feature |
Chrome |
Firefox |
Edge |
Internet Explorer |
Opera |
Safari |
---|---|---|---|---|---|---|
Basic Support |
4.0 |
4 |
12 |
11 |
12 |
7 |
Feature |
Android |
Chrome for Android |
Edge mobile |
Firefox for Android |
IE mobile |
Opera Android |
iOS Safari |
---|---|---|---|---|---|---|---|
Basic Support |
4.4 |
18 |
(Yes) |
(Yes) |
? |
? |
8.4 |