目录
跳转的方法
重定向
当访问HTTP时 如http://example.com
服务器会返回一个301状态码(重定向),将网站跳转到有HTTPS协议的网站上,变成用HTTPS访问该网站
由数据包可以看到,301将Location 换成了https的网站
重定向有一定的风险,如中间人攻击
(图片来自网络)
因此产生了HSTS(Strict-Transport-Security)策略
HSTS
HSTS 的工作原理是通过在网站的初始 HTTPS 响应中添加一个名为 "Strict-Transport-Security" 的 HTTP 响应头。该头部包含一个策略指令,指定浏览器应该记住的访问该网站仅使用 HTTPS 的最长时间。一旦浏览器接收到这个头部,它会自动将后续的任何 HTTP 请求转换为指定的持续时间内的 HTTPS 请求
了解HSTS
HSTS防止中间人攻击的原理
当用户首次访问支持 HSTS 的网站时,如果网站在响应中包含了 HSTS 头部,浏览器会将该网站添加到自己的 HSTS 允许列表中,并且在一定的有效期内强制使用 HTTPS 连接。
当用户再次访问同一个网站时,即使攻击者尝试将用户的请求重定向到一个不安全的 HTTP 连接,浏览器会自动将请求转换为 HTTPS,因为该网站在 HSTS 允许列表中。用户的请求将直接与网站建立起加密的 HTTPS 连接,绕过了攻击者的恶意服务器,从而防止了中间人攻击
(图片来自网络)
如果是首次访问的时候进行中间件攻击呢?
预加载。浏览器厂商将一些常用的网站添加到浏览器的内置 HSTS 允许列表中,这样用户在首次使用浏览器时就会自动启用 HSTS