HSTS – 如何使用HTTP严格传输安全

确保为您的WordPress网站正确设置安全性非常重要,尤其是在保护自己免受黑客攻击方面。您可以实施许多不同的增强功能和最佳WordPress安全实践,以确保您的网站被锁定。

如果您的WordPress网站通过HTTPS运行,那么我们建议实施的增强功能之一是HSTS安全标头,因为它可以帮助防止中间人攻击 (MitM) 和cookie劫持。

什么是HSTS(严格的传输安全)?

HSTS代表HTTP严格传输安全性,由IETF在2012年的RFC 6797中指定。创建它是为了在站点通过HTTPS运行时强制浏览器使用安全连接。它是您添加到Web服务器的安全标头,并在响应标头中反映为Strict-Transport-Security。HSTS很重要,因为它解决了以下问题:

  • 访问者尝试使用您网站页面的不安全版本 (HTTP://) 的任何尝试都将自动转发到安全版本 (HTTPS://)。
  • 旧的HTTP书签和输入您网站的HTTP版本的人会让您面临中间人攻击。在这些攻击中,攻击者改变各方之间的通信并诱使他们认为他们仍在相互通信。
  • 不允许覆盖无效的证书消息,这反过来又保护了访问者。
  • Cookie劫持:当有人通过不安全的连接窃取会话cookie时,就会发生这种情况。Cookie可以包含各种有价值的信息,例如信用卡信息、姓名、地址等。

如何将HSTS添加到WordPress网站

从技术上讲,您将HSTS添加到Web服务器本身,然后将其应用于对您的WordPress站点的HTTP请求。通常在从HTTP重定向到HTTPS时会添加301重定向。Google已正式表示您可以同时使用301服务器重定向和HSTS标头

虽然我们的系统默认更喜欢HTTPS版本,但您也可以通过将您的HTTP站点重定向到您的HTTPS版本并在您的服务器上实施HSTS标头,使其他搜索引擎更清楚这一点。 Zineb Ait Bahajji,谷歌安全团队

有不同类型的指令和/或安全级别可以应用于HSTS标头。下面是使用max-age指令的最基本的一种。这定义了Web服务器应仅通过HTTPS传送的时间(以秒为单位)。

在Apache中启用HSTS

将以下代码添加到您的虚拟主机文件中。

Header always set Strict-Transport-Security max-age=31536000

在NGINX中启用 HSTS

将以下代码添加到您的NGINX配置中。

add_header Strict-Transport-Security max-age=31536000

事实上,添加HSTS标头有性能优势。如果有人试图通过HTTP访问您的站点,而不是发出HTTP请求,它只是重定向到HTTPS版本。

预加载HSTS

还有HSTS预加载。这基本上是将您的网站和/或域放入浏览器中实际内置的已批准HSTS列表中。谷歌官方编译了这个列表,它被Chrome、Firefox、Opera、Safari、IE11和Edge使用。将您的站点提交到官方HSTS预加载列表

预加载HSTS

预加载HSTS

但是,您必须满足一些额外要求才有资格。

  1. 服务器必须具有有效的SSL/TLS证书。
  2. 将所有流量重定向到HTTPS。
  3. 在基本域上提供HSTS。
  4. 通过HTTPS为所有子域提供服务,特别包括www子域(如果存在)。
  5. 到期时间必须至少为1年(31536000 秒)
  6. 必须指定includeSubdomains令牌指令
  7. 必须指定预加载令牌指令。

为此,它需要将额外的子域和预加载指令添加到您的HSTS标头中。以下是更新后的HSTS标头的示例。

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

公平警告:从预加载列表中删除您的域可能是一个困难且耗时的过程,因此请确保您将长期使用HTTPS。

验证HSTS标头

有几种简单的方法可以检查HSTS是否在您的WordPress网站上运行。您可以启动Google Chrome Devtools,单击“网络”选项卡并查看标题选项卡。正如您在下面的真香主题网站上看到的那样,正在应用HSTS值:“strict-transport-security: max-age=31536000”。

验证HSTS标头

您还可以使用免费的在线工具(如securityheaders.io)扫描您的WordPress网站,该工具会让您知道是否应用了strict-transport-security标头。

strict-transport-security标头

HSTS浏览器支持

根据Caniuse的说法,浏览器对HSTS的支持非常广泛,全球超过80%,美国超过95%。2015年在IE11中添加了对HSTS的支持,目前唯一不支持它的现代浏览器是Opera Mini。

浏览器对HSTS的支持

我们还建议您查看Tim Kadlec关于HSTS和Let’s Encrypt的这篇文章。

HSTS对SEO的影响

在您的网站获得批准并包含在HSTS预加载列表中后,您可能会注意到来自Google Search Console或其他第三方SEO工具的关于307重定向的警告。这是因为当有人尝试通过HTTP访问您的网站时,浏览器中会发生307重定向,而不是301重定向(如下所示)。

HSTS – 严格传输安全307重定向

HSTS – 严格传输安全307重定向

通常307重定向仅用于临时重定向。301重定向用于已永久移动的URL。那么它不应该使用301重定向吗?那么这对SEO的影响呢?

嗯,事实上,301重定向仍在幕后发生。307重定向发生在浏览器级别,而不是服务器级别。您可以通过在服务器级别检查重定向的工具(例如httpstatus )运行该站点,您会发现实际上301重定向仍在发生。因此,您无需担心HSTS标头会影响您的SEO。

HSTS 301重定向

HSTS 301重定向

本文提到: