1、当用户在浏览器中键入时,浏览器默认访问。将 http 请求重定向到 https 取决于服务器,但这会消耗服务器性能资源。
2、当HTTPS网站使用自签名证书(或不在浏览器的证书信任列表中)时,浏览器会向网站发出安全风险警告,但不会暂停HTTPS网站访问并询问用户是否信任此证书,继续访问 HTTPS 网站。安全风险由用户决定。当我们爬取HTTPS网站时,该网站的证书已经被截获,而这个浏览器中显示的证书就是创建的证书,所以也会报警告(也叫中间人攻击)。
通过设置 HSTS 可以消除上述威胁。那么 HSTS 是如何做到的呢?服务器和客户端(浏览器)需要如何合作?
我们来看看百度的请求/响应消息:
在响应标头中找到以下数据行:
参数含义:以秒为单位,当浏览器向百度或其子域发送HTTP请求时,浏览器会自动转换为HTTPS发起连接。这减少了服务器重定向的处理以及请求被中间人拦截的风险。
应用原理:实现HSTS配置的网站一般配合服务器的301重定向使用。当用户第一次进入HTTP网站时,浏览器此时并没有将其转换为HTTPS网站访问Chrome HSTS异常导致无法访问HTTPS网页,因为浏览器并不知道该网站。无论是 HTTP 还是 HTTPS(即浏览器没有网站的 STS 头),所以浏览器发送 HTTP 请求。服务器收到 HTTP 请求后,重定向到 HTTPS 网站Chrome HSTS异常导致无法访问HTTPS网页,然后输出 HSTS 头。对于下一个 HTTP 请求,浏览器会将其转换为 HTTPS 请求进行访问。
评论留言