什么是 HSTS
HSTS(HTTP Strict Transport Security 的简称) allows a site to request that it always be contacted over HTTPS
HSTS 使页面打开时总是以 HTTPS 协议打开。
介绍: https://www.chromium.org/hsts
语法:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Str...
HTST 作用
为什么要用 HSTS
HSTS
可以很大程度上解决 SSL
剥离攻击,比 HTTP -> HTTPS
重定向这种要更安全,可以完全防止 HTTP
请求被攻击的情况。因为只要浏览器曾经与服务器创建过一次安全连接,之后浏览器会强制使用HTTPS,即使链接被换成了 HTTP
。这个是解决首次进入浏览器未生效的问题。
当然也没有完美的方案,使用 HSTS 仍有问题未解决:
chrome 中的表现
chrome
在实现 HTST
的时候,会自动使用 307
重定向: http -> https
HTTP 情况处理对比
如果 HTTPS
证书无效,将阻止你建立连接。 通常来说,如果 HTTPS
证书无效(如:过期、自签名、由未知 CA
签名等),浏览器会显示一个可以规避的警告。 但是,如果站点有 HSTS
,浏览器就不会让你绕过警告。 若要访问该站点,必须从浏览器内的 HSTS
列表中删除该站点。
Preloaded HSTS
为了解决全新安装的用户或清除本地状态的用户受到攻击,Chrome 维护了一个 HSTS
预加载列表(其他浏览器也根据 Chrome 列表维护列表):Preloaded HSTS sites 。在这些列表的网址将强制使用 HTST
规则而无无需在服务中配置。 这也能解决首次加载 HTTP 被攻击的问题。
注意:.dev 在 Preloaded 里, .dev 的都会强制转 https
浏览器支持
在浏览器中管理 HSTS
chrome 清理:chrome://net-internals/#hstsPreloaded HSTS
这里里面有的,在浏览器里是无法清除的。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。