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
几秒。
发表回复