HSTS:如何将HSTS添加到您的网站的安全标题

/, 速度优化/HSTS:如何将HSTS添加到您的网站的安全标题

如何将HSTS添加到您网站的安全标题中

如何将HSTS添加到您网站的安全标题中

让我们进一步了解什么是HSTS,为什么需要它,以及如何通过在.htaccess文件中添加几行代码轻松实现HSTS。

您肯定已经知道HTTPS (HTTP / SSL/TLS)是影响SEO排名的一个因素。 自2014年8月谷歌宣布 这一消息以来,HTTPS逐渐变得重要起来。从2018年7月开始的几个月以来,谷歌最热门的Chrome浏览器将把非HTTPS站点标记为“不安全”,由此看来HTTPS作为谷歌排名因素的重要性正在增加。

信息很清楚: 安全和站点速度是谷歌的首要重点。

多年来网站管理员和网站所有者们一直很明确的一点就是应该将他们的网站从HTTP迁移到HTTPS。我想你们都切换到了HTTPS,如果还没有这么做,那么是时候了解更多如何切换到HTTPS的方法了。

你应该从阅读关于这个话题的众多文章中的一篇开始,例如HTTP to HTTPS: An SEO’s guide to securing a websiteMoving your website to HTTPS / SSL这样的文章就是一个好的起点。

什么是HSTS ?为什么需要它?

HTTP 严格的传输安全(或简称HSTS)是一种web安全策略机制,有助于保护网站免受协议降级攻击和cookie劫持。HSTS由服务器通过一个名为“严格传输安全”的HTTP响应头字段与用户代理通信。这指定了一段时间,在此期间用户代理只能以安全的方式访问服务器。

阅读维基百科的文章 我们了解到HSTS安全标题的好处:

HSTS策略有助于保护web应用程序用户免受一些被动窃听和主动网络攻击。中间人攻击者使用户和web应用服务器之间的请求和响应的能力大大降低,而用户的浏览器对该web应用程序具有有效的HSTS策略。

[ … ]

HSTS能够修复的最重要的安全漏洞是SSL剥离的中间人攻击,这是由Moxie Marlinspike在2009年的黑帽联邦演讲“实践中击败SSL的新技巧”中首次公开介绍的。SSL(和TLS)剥离攻击通过透明地将安全的HTTPS连接转换为纯HTTP连接来工作。用户可以看到连接是不安全的,但关键的是无法知道连接是否应该是安全的。许多网站不使用TLS/SSL,因此(在没有事先知道的情况下)无法知道使用纯HTTP是由于攻击,还是仅仅因为网站没有实现TLS/SSL。

此外,在降级过程中没有向用户发出警告,这使得攻击对所有人来说都相当微妙,除了最警惕的人。马林斯派克的sslstrip工具完全自动化了攻击。HSTS通过通知浏览器到站点的连接应该始终使用TLS/SSL来解决这个问题。如果这是用户的第一次访问,攻击者可以剥离HSTS头文件。

因此,当与web站点通信时,HSTS指示web浏览器仅对将来的所有请求使用安全连接。

这样做有助于防止SSL协议攻击、SSL剥离、cookie劫持和其他规避SSL保护的尝试。

提高SEO和站点速度

HSTS不仅提高了站点的安全性。它还提供了少量的SEO改进,因为使用HSTS将使您的网站加载速度更快。

它是这样工作的:

当只使用HTTPS加载站点时,浏览器将首先尝试调用HTTP版本,然后才会实现页面支持HTTPS。最初的HTTP尝试会导致站点加载时间的稍许延迟。

当然,我们讨论的是毫秒,但当涉及到页面速度时,每一毫秒都很重要。

启用了HSTS后,浏览器就知道只使用HTTPS,从而可以立即重定向并消除任何延迟时间。

如何通过.htaccess添加HSTS安全标头

如果你正在运行一个WordPress站点,你可以选择使用其中一个插件来促进HSTS。但是有一种更简单的方法可以做到这一点,而且不需要安装第三方插件。只需在.htaccess文件中添加以下几行代码:

# Extra Security Headers
Header set X-XSS-Protection "1; mode=block"
Header always append X-Frame-Options SAMEORIGIN
Header set X-Content-Type-Options nosniff
Header set Strict-Transport-Security "max-age=31536000" env=HTTPS
Header set Referrer-Policy "no-referrer-when-downgrade"

请注意,当您的web服务器发送此标头时,任何通过HTTPS访问站点的浏览器都无法在指定的时间内访问不安全的HTTP站点。

在这种情况下,是31536000秒,或者一年。

因此,一旦启用了HSTS,就不应该停止在站点上使用SSL。如果你这样做,重复访问者将无法访问你的网站。

如何检查您的安全标题

在编辑完.htaccess文件后,您需要检查并确保它得以正确执行。

向您推荐一个很好的网站https://securityheaders.com(由Scott Helme制作,-为这个服务向Scott致敬!)它可以帮助你分析HTTP响应头。

通过在你的.htaccess中使用上面的代码,你应该达到A级。

如果你想更进一步达到A+,你还需要实现内容安全策略(CSP)来防止跨站点脚本- CSS -攻击。相对设置HSTS,应用 CSP headers on WordPress会稍微复杂一点,但我们可以未雨绸缪。

作者:|2018-10-16T09:42:48+00:002018年10月16日|主题:安全, 速度优化|标签:, |

关于作者:

Digital Marketing Engineer, Multilingual SEO Expert, Search Engine Marketing Professional, Technical SEO, LAMP Stack Application Fan & FOSS Enthusiast, PPC Advertiser, Debian & Devuan GNU/Linux System Administrator, CRM Solution Provider, Joomla! Webmaster, WordPress Virtuoso & OpenCart E-Commercialist. Standing on the Shoulders of Giants.

发表评论