HSTS 是什么
HTTP 严格传输安全(英语:HTTP Strict Transport Security,缩写:HSTS) 是一套由互联网工程任务组发布的互联网安全策略机制。网站可以选择使用 HSTS 策略,来让浏览器强制使用 HTTPS 与网站进行通信,以减少会话劫持风险。
HSTS 的作用是强制客户端 (如浏览器) 使用 HTTPS 与服务器创建连接。服务器开启 HSTS 的方法是,当客户端通过 HTTPS 发出请求时,在服务器返回的超文本传输协议 (HTTP) 响应头中包含 Strict-Transport-Security
字段。非加密传输时设置的 HSTS 字段无效。
作用
HSTS 可以用来抵御 SSL 剥离攻击,因为只要浏览器曾经与服务器创建过一次安全连接,之后浏览器会强制使用 HTTPS,即使链接被换成了 HTTP。
另外,如果中间人使用自己的自签名证书来进行攻击,浏览器会给出警告,但是许多用户会忽略警告。HSTS 解决了这一问题,一旦服务器发送了 HSTS 字段,将不再允许用户忽略警告。
提交要求
- 提供有效的证书。
- 如果您正在侦听端口 80,则在同一主机上从 HTTP 重定向到 HTTPS。
- 通过 HTTPS 为所有子域提供服务。
- 特别是 www,如果该子域的 DNS 记录存在,您必须支持该子域的 HTTPS 。
- 在基域上为 HTTPS 请求 提供 HSTS 标头:
max-age
必须至少为31536000
秒 (1 年)。includeSubDomains
必须指定指令。preload
必须指定指令。- 如果您从 HTTPS 站点提供额外的重定向,则该重定向必须仍然具有 HSTS 标头 (而不是它重定向到的页面)。
- 以下是有效 HSTS 标头的示例:
Strict-Transport-Security:max-age=63072000; includeSubDomains; preload
持续要求
您必须确保您的网站始终满足提交要求。请注意,preload
从您的标头中删除该指令将使您的网站立即符合删除表格的条件,并且该网站将来可能会因未能满足要求而被自动删除。
特别是,上述要求适用于 2017 年 10 月 11 日hstspreload.org
或之后提交的所有域 (即在 Chrome 63 之后预加载)
相同的要求适用于 2016 年 2 月 29 日 或之后提交的早期域 (即在 Chrome 50 之后预加载),但这些域所需的 max-age 仅为 10886400
几秒。
发表回复