如何实现HSTS的实现也很简单,通过HTTPS协议访问你站点

日期: 栏目:文章分享 浏览:777 评论:0

什么是 HSTS

它的全称是——HTTP。听起来很高大上,其实很简单,已经被主流浏览器广泛采用。让我们谈谈它可以做什么。简而言之,支持 HSTS 的服务器可以强制访问它的浏览器使用 HTTPS 协议。这样可以最大限度地减少HTTP协议的各种安全问题。

如何实现

HSTS 的实现也很简单。通过 HTTPS 协议访问您的站点时,在相应的 中添加以下信息:

--“最大年龄=;;”

--为字段名,后面的max-age代表HSTS在客户端的生效时间。表示对所有子域都有效。

Chrome HSTS异常导致无法访问HTTPS网页_chrome网页无法加载_chrome无法翻译网页

比如我们在浏览器中访问首页,然后打开开发者工具,可以看到服务器发送了这样的响应:

这里的 -- 标头是 HSTS 信息。其实在服务器端,只需要发送这个即可。具体实现在客户端,也就是你的浏览器。当浏览器检测到此类信息时,会进行记录。根据max-age提示,当用户在一定时间内再次访问该站点时,会直接使用HTTPS协议请求。如果 HTTPS 请求失败,则不会降级。改为 HTTP 直接失败。

这有什么好处

其实人们平时使用浏览器的时候,一般都是直接在地址栏输入域名Chrome HSTS异常导致无法访问HTTPS网页,然后访问。但是你应该知道,大多数浏览器默认会使用 HTTP 发起请求。也就是说,即使你的站点已经支持HTTPS,用户不做任何处理仍然很难到达。

为什么我们访问很多网站时会自动跳转到 HTTPS 网站?也是因为这些网站都处理了这个问题。最原始的方法是 302 重定向,服务器将所有 HTTP 流量重定向到 HTTPS。但是这种方式有一个明显的安全漏洞,就是当你第一次访问该站点时,如果是HTTP,可能会被中间人劫持,可能在302跳转之前就被劫持了。

这就是引入HSTS机制的原因。一旦用户的浏览器获取到HSTS信息,客户端浏览器下次访问站点时会强制使用HTTPS。您在地址栏中输入的任何内容都将通过 HTTPS 访问。这避免了每次服务器端跳转可能导致的潜在安全问题。

这就解释了为什么我们在使用主流浏览器输入网站域名时,会自动跳转到HTTPS。因为我们访问的主要是大型主流网站,所以用户的感觉是 HTTPS 是自动发生的。但事实并非如此。

HSTS 本身也存在缺陷。如果用户的浏览器从未访问过该站点,它将不会获得 HSTS 响应标头。这个时候还是有被劫持的风险,不过比起服务器端每次跳转的机制,已经好了很多。

针对 HSTS 的这一缺陷,主流浏览器也提供了一些解决方案,例如在浏览器中预建一些流量较大且已知支持 HSTS 的站点,从而更大程度地完善 HTTPS 的安全机制。

Chrome HSTS异常导致无法访问HTTPS网页_chrome网页无法加载_chrome无法翻译网页

结尾

HTTPS可以帮助用户保护自己信息传输的安全,但这一切都需要客户端和服务器的配合。合理使用 HSTS 可以让你的 HTTPS 站点接触到更多的用户。当然,HSTS也有自己的缺陷,还有一点需要注意,就是如果你网站的HTTPS服务没有完全准备好,不要轻易打开HSTS响应head。因为一旦浏览器得到这个响应头,就会在指定的max-age期限内强制使用HTTPS访问。如果你的服务没有准备好Chrome HSTS异常导致无法访问HTTPS网页,用户将永远无法访问,无法降级。

标签:

评论留言

我要留言

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。发布前请先查看评论规则:点我查看