如何添加WordPress网站HTTP安全标头

HTTP安全标头目的是为WordPress网站添加额外的安全层。它们可以帮助阻止常见的恶意行为影响网站安全及性能。

在本教程中,我们将详细介绍如何在WordPress中添加HTTP安全标头。

添加WordPress网站HTTP安全标头

什么是HTTP安全标头?

HTTP安全标头是一种安全措施,在影响您的网站之前阻止一些常见的安全威胁。

基本上,当用户访问您的网站时,Web服务器会将HTTP标头响应发送回客户端浏览器。该响应告诉浏览器有关错误代码,缓存控制和其他状态的信息。

正常的标头响应会发出状态为HTTP 200的消息。此后,用户的浏览器就会加载您的网站内容。但是,如果您的网站出现问题,则您的网络服务器可能会发送其他HTTP标头。

例如,它可能会发送503服务器不可用错误400错误代码。

HTTP安全标头是这些标头的子集,用于防止网站遭受常见的威胁,例如点击劫持,跨站点脚本,暴力攻击等。

下面让我们浏览一下常见HTTP安全标头以及它们如何保护您的网站。

HTTP严格传输安全协议(HSTS)

HTTP严格传输安全(HSTS)标头告诉Web浏览器您的网站使用HTTPS,并且不应使用HTTP这样的不安全协议进行加载。

配置HSTS(HTTP严格传输安全协议)响应标头,以强制浏览器始终在您的站点上使用HTTPS而不是HTTP。 当浏览器访问您的站点并接收 Strict-Transport-Security 响应标头时,它告诉浏览器将对所有将来 http:// 站点的URL请求转换为https://请求。标头可以包括以下选项:1)max-age=<seconds> 说明应遵循多少秒的HSTS策略 2)includeSubDomains 说明将策略应用于所有子域。例如,Strict-Transport-Security: max-age=31536000; includeSubDomains 告诉浏览器一年内所有子域都使用HTTPS。Warning: 从 max-age 较小值开始直到您确保可以管理站点的HTTPS配置为止。毕竟如果在通过HTTPS加载页面时遇到问题,在没有解决问题之前用户将无法访问您的网站。

如果您已将WordPress网站从HTTP移至HTTPs,则此安全标头可强制浏览器通过HTTPS加载网站。

X-XSS保护

X-XSS Protection标头允许您阻止跨站点脚本加载到WordPress网站上。

通过启用浏览器XSS安全措施来防御XSS攻击。 XSS攻击者向正在发送给用户的页面中注入代码。某些浏览器内置XSS保护,可以通过添加 X-XSS-Protection: 1; mode=block 到每个页面的响应标头中来启用。如果浏览器检测到XSS攻击,此设置将停止呈现页面。请注意,这仅应被视为针对XSS攻击的不得已的防御措施。您的网站应经过全面审查,并在构建时应考虑XSS防护措施,以防止注入攻击。

X-Frame-Options

X-Frame-Options安全标头可防止跨域iframe或点击劫持。

通过限制将网页嵌入到iframe中来防止点击劫持攻击。 点击劫持攻击者在其控制的网站上的iframe中显示页面。例如,攻击者可能会在iframe上覆盖一个UI层,以诱骗访问者在页面上触发操作以及覆盖表单字段以窃取数据。点击劫持常见用于社交分享链接,点击广告和窃取密码。使用 X-Frame-Options 响应标头来限制主机嵌入页面,从而抵御这些攻击。可能的选项是1)DENY 限制所有URL 2) SAMEORIGIN 仅允许来自与页面相同来源的URL 3) ALLOW-FROM 允许来自特定来源。例如,X-Frame-Options: DENY 将阻止所有iframe使用。您应该使用尽可能严格的设置。

X-Content-Type-Options

X-Content-Type-Options阻止内容mime类型的嗅探。

关闭浏览器内容嗅探,以防止内容嗅探漏洞。 在处理响应时,浏览器有时会忽略 Content-Type 标头中的MIME类型,并根据响应的内容猜测类型。这称为内容嗅探,用于在 Content-Type 标头不正确或丢失时改善用户体验。但这可能会被恶意利用。例如,如果您的站点允许用户共享图像,则攻击者可能能够上载包含JavaScript代码的特制图像文件。然后,可能会诱骗执行内容嗅探的浏览器执行恶意文件。为了减少内容嗅探攻击,请将 X-Content-Type-Options 响应标头设置为 nosniff。这告诉浏览器避免猜测响应类型,而仅依赖于 Content-Type 标头。

为WordPress添加HTTP安全标头

在网络服务器级别设置,HTTP安全标头工作效果最佳。这使它们可以在典型的HTTP请求中尽早触发,并提供最大的收益。

如果您使用的是DNS级别的网站应用程序防火墙(如Sucuri或Cloudflare),它们甚至会更好。下面我们将介绍每种方法,您可以选择最适合自己的一种。

1.使用Sucuri添加HTTP安全标头

Sucuri是市场上最好的WordPress安全插件。如果您还使用他们的网站防火墙服务,则可以设置HTTP安全标头,而无需编写任何代码。

首先,您需要注册一个Sucuri帐户。它是一项付费服务​​,带有服务器级网站防火墙,安全插件,CDN和恶意软件清除保证。

在注册过程中,您需回答简单的问题,Sucuri文档将帮助您在网站上设置网站应用程序防火墙。

注册后,您需要安装并启用免费的Sucuri插件

启用后,转到Sucuri Security » Firewall (WAF)页面,然后输入防火墙API密钥,您可以在Sucuri网站帐户下找到此信息。

Sucuri安全插件防火墙API

接下来,切换到Sucuri帐户仪表盘。在此处,单击顶部的“Settings”菜单,然后切换到“Security”选项卡。

sucuri安全标头规则设置

在这里,您可以选择三种规则。默认保护为HSTS和HSTS Full。您将看到哪些HTTP安全标头将应用于每组规则。

选择你需要的安全规则,点击“Save Changes in The Additional Headers”按钮以应用更改。

Sucuri现在将在WordPress中添加您选择的HTTP安全标头。由于它是DNS级别的WAF,因此在黑客到达您的网站之前,也可以保护您的网站流量免受黑客的攻击。

2.使用Cloudflare添加HTTP安全标头

Cloudflare提供了基本的免费网站防火墙和CDN服务。它的免费套餐中缺少高级安全功能,需要升级到价格更高的专业计划才可以实现高级别网站防护。

要在您的网站上添加Cloudflare,请参阅有关如何在WordPress中添加Cloudflare免费CDN的教程。

一旦Cloudflare在您的网站上处于活动状态,请转到Cloudflare帐户信息中心下的SSL/TLS页面,然后切换到“Edge Certificates”选项卡。

cloudflare安全标头

现在,向下滚动到“HTTP Strict Transport Security (HSTS) ”部分,然后单击“Enable HSTS”按钮。

cloudflare启用hsts

这将弹出一个弹出窗口,其中包含说明,告诉您在使用此功能之前必须在WordPress博客上启用HTTPS 。单击下一步按钮继续,您将看到添加HTTP安全标头的选项。

cloudflare启用https标头

在这里,您可以启用HSTS,no-sniff标头,将HSTS应用于子域(如果它们使用的是HTTPS)并预加载HSTS。

此方法使用HTTP安全标头提供基本保护。但是,它不允许您添加X-Frame-Options,并且Cloudflare没有用户界面可以执行此操作。

您仍然可以通过使用Workers功能创建脚本来做到这一点。但是,创建HTTPS安全标头脚本可能会给初学者带来意外的问题,一般不推荐这样做。

3.使用.htaccess添加HTTP安全标头

此方法允许您在服务器级别为WordPress网站设置HTTP安全标头。

它要求您编辑网站上的.htaccess文件(找不到htaccess?)。它是最常用的Apache Web服务器软件使用的服务器配置文件。

只需使用FTP客户端或托管服务器控制面板中的文件管理器应用程序连接到您的网站。在网站的根文件夹中,找到.htaccess文件并进行编辑。

编辑htaccess

在文件底部,您可以添加代码以将HTTPS安全标头添加到WordPress网站。

您可以参考以下示例代码,这是最常用也是最佳的HTTPs安全标头设置:

<ifModule mod_headers.c> 
Header set Strict-Transport-Security "max-age=31536000" 
env=HTTPS 
Header set X-XSS-Protection "1; mode=block" 
Header set X-Content-Type-Options nosniff 
Header set X-Frame-Options DENY 
Header set Referrer-Policy: no-referrer-when-downgrade 
</ifModule>

不要忘记保存更改并访问网站,以确保一切正常。

注意:错误的标题或.htaccess文件中的冲突可能会在大多数Web主机上触发500内部服务器错误。

4.使用WordPress插件添加HTTP安全标头

这种方法效果不佳,因为它依赖WordPress插件来修改标头。但是,这也是为WordPress网站添加HTTP安全标头的最简单方法。

首先,您需要安装并启用 Redirection 插件。

启用插件后,将进入插件设置向导,您可以按照该向导进行设置。之后,转到 Tools » Redirection 页面,然后切换到“Site”选项卡。

网站重定向设置

接下来,需要向下滚动到页面底部的“HTTP Headers”部分,然后点击“Add Header”按钮。从下拉菜单中,您需要选择“Add Security Presets”选项。

添加http安全标头重定向

之后,您将需要再次点击以添加这些选项。然后,您会看到一个HTTP安全标头的预设列表出现在表中。

https安全标头常见规则设置

这些标头针对安全性进行了优化,您可以对其进行查看并在需要时进行更改。完成后,请不要忘记点击“Update”按钮以保存更改。

最后,访问您的网站,以确保一切正常。

如何检查网站的HTTP安全标头

将HTTP安全标头添加到您的WordPress网站后,您可以使用免费的“Security Headers”工具测试配置是否正确。只需输入您的网站URL,然后单击“Scan”按钮。

https安全评分

然后它将检查您网站的HTTP安全标头,并反馈报告。该工具将生成一个所谓的评分标签,您可以忽略该标签,因为大多数网站最多会获得B或C评分,这一般不会影响用户体验。

它将具体显示您的网站发送了哪些HTTP安全标头,并且不包含哪些安全标头。如果您要设置的安全标头在此处列出,则说明您已完成。

希望本教程能帮助您学会如何在WordPress网站中添加HTTP安全标头。

评论留言