WordPress 2020 最佳安全实践

WordPress 2020 最佳安全实践

在 WordPress 安全方面,你可以采取许多措施来锁定网站,以防止黑客和漏洞影响你的电子商务网站或博客。因此,今天我们将分享许多技巧,策略和技术,你可以使用这些技巧,策略和技术来提高 WordPress 的安全性并保持受保护的状态。

WordPress 安全吗?

你可能想知道的第一个问题是 WordPress 安全吗?多半是对的。但是,WordPress 通常容易受到安全漏洞的损害,并且本质上不是用于企业的安全平台。通常,这是由于用户一直遵循业界公认的安全性最差的做法。

使用过时的 WordPress 软件,未使用插件,无效的系统管理,凭证管理以及非技术 WordPress 用户之间缺乏必要的 Web 和安全知识,使黑客始终处于其网络犯罪游戏的顶端。甚至行业领导者也不一定总是使用最佳实践。路透社被黑客入侵, 因为他们使用的是过时的 WordPress 版本。

 

从根本上讲,安全性并不是关于完全安全的系统。这样的事情很可能不切实际,或者不可能找到和 / 或维护。安全性是降低风险,而不是消除风险。这是关于在合理范围内使用所有可用的适当控件,它们可以使你改善总体姿势,减少使自己成为目标并随后被黑客攻击的几率。– WordPress 安全规范

现在,这并不是说漏洞不存在。根据多平台安全公司 Sucuri 在 2017 年第三季度的一项研究,WordPress 继续领导着他们工作的受感染网站(占 83%)。 这比 2016 年的 74%有所增长。

WordPress 安全漏洞

WordPress 为 Internet 上所有网站的 37.6%提供了强大支持,并且拥有成千上万的主题和插件组合,弱点的存在并不断被发现也就不足为奇了。但是,WordPress 平台周围还有一个很棒的社区,以确保尽快修复这些问题。截至 2020 年,WordPress 安全团队由大约 50 名专家(2017 年为 25 名)组成,其中包括首席开发人员和安全研究人员 - 大约一半是 Automattic 的员工,并且在网络安全领域有大量工作。

WordPress 漏洞

在下面查看一些不同类型的 WordPress 安全漏洞。

  • 后门
  • 制药黑客
  • 暴力登录尝试
  • 恶意重定向
  • 跨站点脚本(XSS)
  • 拒绝服务

后门

恰当命名的后门漏洞为黑客提供了隐藏的通道,绕过安全加密,从而通过异常方法(wp-Admin,SFTP,FTP 等)访问 WordPress 网站。一旦被利用,后门程序就使黑客能够对跨站点污染的托管服务器造成严重破坏。攻击–破坏托管在同一服务器上的多个站点。在 2017 年第 3 季度,Sucuri 报告说后门仍然是攻击者采取的许多后黑客行动之一,其中 71% 的受感染站点采用了某种形式的后门注入。

恶意软件家族分布

后门程序通常经过加密,使其看起来像合法的 WordPress 系统文件,并通过利用平台过时版本中的弱点和错误进入 WordPress 数据库。该 TimThumb 惨败 是后门漏洞利用脚本黑幕和过时的软件影响数百万网站的一个很好的例子。

幸运的是,预防和治愈此漏洞非常简单。你可以使用 SiteCheck 之类的工具扫描 WordPress 网站,该工具 可以轻松检测常见的后门程序。两因素身份验证,阻止 IP,限制管理员访问权限以及防止未经授权执行 PHP 文件,可以轻松解决常见的后门威胁,我们将在下面详细介绍。

Pharma Hack

Pharma Hack 漏洞用于将恶意代码插入 WordPress 网站和插件的过时版本中,导致搜索引擎在搜索到受感染网站时返回药品广告。与传统恶意软件相比,该漏洞更像是垃圾邮件威胁,但给搜索引擎足够的理由阻止其散布垃圾邮件。

Pharma Hack 的移动部分包括插件和数据库中的后门,可以根据此 Sucuri 博客中的说明进行清理。但是,这些漏洞通常是隐藏在数据库中的加密恶意注入的恶性变体,需要彻底的清理过程才能修复此漏洞。不过,你可以使用推荐的 WordPress 托管提供商和最新的服务器,并定期更新 WordPress 安装,主题和插件,从而轻松预防 Pharma Hacks。

暴力登录尝试

暴力登录尝试使用自动脚本来利用弱密码并获得对你站点的访问权限。两步身份验证,限制登录尝试,监视未经授权的登录,阻止 IP 并使用强密码是防止暴力攻击的最简单有效的方法。但是不幸的是,许多 WordPress 网站所有者未能执行这些安全措施,而黑客却可以使用蛮力攻击轻松地在一天内破坏多达 30,000 个网站。

恶意重定向

恶意重定向使用 FTP,SFTP,wp-admin 和其他协议在 WordPress 安装中创建后门,并将重定向代码注入网站。重定向通常以编码形式放置在你的.htaccess 文件和其他 WordPress 核心文件中,将网络流量定向到恶意站点。我们将在下面的 WordPress 安全步骤中介绍一些可以防止这些情况的方法。

跨站脚本(XSS)

跨站点脚本(XSS)是指将恶意脚本注入到受信任的网站或应用程序中。攻击者使用此方法将恶意代码(通常是浏览器端脚本)发送给最终用户,而他们并不知道。目的通常是获取 Cookie 或会话数据,或者甚至重写页面上的 HTML。

根据 WordFence 的说法,跨站点脚本漏洞是在 WordPress 插件中发现的最常见的漏洞,占相当大的比例。

拒绝服务

拒绝服务(DoS)漏洞可能是其中最危险的漏洞,它利用代码中的错误和错误来淹没网站操作系统的内存。黑客通过利用 DoS 攻击利用过时且错误的 WordPress 软件版本,破坏了数百万个网站并赚了 数百万美元。尽管出于经济动机的网络犯罪分子不太可能将目标对准小公司,但他们倾向于在创建僵尸网络链以攻击大型企业的过程中妥协过时的脆弱网站。

甚至最新版本的 WordPress 软件也无法全面防御高水平的 DoS 攻击,但至少可以帮助你避免陷入金融机构与复杂的网络犯罪分子之间的交火中。

WordPress 安全指南 2020

根据互联网实时统计,每天有超过 100,000 个网站被黑客入侵。' 这就是为什么花一些时间并仔细阅读以下有关如何更好地加强 WordPress 安全性的以下建议如此重要的原因。

1. 使用安全的 WordPress 托管

关于 WordPress 安全性,不仅可以锁定你的网站,还可以提供更多建议,尽管我们将在下面为你提供最佳建议。WordPress 主机还负责 Web 服务器级别的安全性。

选择可以信任你的企业的主机非常重要。或者,如果你将 WordPress 托管在自己的 VPS 上,那么你需要具备技术知识才能自己做这些事情。

服务器强化是维护完全安全的 WordPress 环境的关键。它采取了多层硬件和软件级别的安全措施,以确保托管 WordPress 网站的 IT 基础架构能够防御物理和虚拟的复杂威胁。

因此,托管 WordPress 的服务器应使用最新的操作系统和(安全)软件进行更新,并对漏洞和恶意软件进行全面测试和扫描。

在服务器上安装 WordPress 之前,应先安装服务器级防火墙和入侵检测系统,以确保在 WordPress 安装和网站建设阶段都对其进行良好的保护。但是,为保护 WordPress 内容而在计算机上安装的每个软件都应与最新的数据库管理系统兼容,以保持最佳性能。还应该将服务器配置为使用安全网络和文件传输加密协议(例如 SFTP 而不是 FTP)来隐藏敏感内容,使其免受恶意入侵者的侵害。

2. 使用最新的 PHP 版本

PHP 是 WordPress 网站的骨干,因此在服务器上使用最新版本非常重要。每个主要的 PHP 版本通常在其发布后的两年内都得到完全支持。在此期间,错误和安全问题已修复,并会定期进行修补。截至目前,在 PHP 7.1 或更低版本上运行的任何人都不再具有安全支持,并且容易受到未修补的安全漏洞的攻击。

根据官方 WordPress Stats 页面的信息,截至撰写本文时,超过 57%的 WordPress 用户 仍使用 PHP 5.6 或更低版本。如果将其与 PHP 7.0 结合使用,则目前有 77.5%的用户正在使用不再受支持的 PHP 版本。

有时,确实需要企业和开发人员花费时间来测试并确保其代码的兼容性,但如果没有安全支持,他们就没有理由在某些产品上运行。更不用说在旧版本上运行会对性能产生巨大影响。

不知道你当前正在使用哪个版本的 PHP?大多数主机通常将其包含在你网站的标头请求中。快速检查方法是通过 Pingdom 运行你的站点。单击第一个请求,然后查找X-Powered-By参数。通常,这将显示你的 Web 服务器当前正在使用的 PHP 版本。但是,出于安全原因,某些主机将删除此标头。

在 Pingdom 中检查 PHP 版本

我们只建议使用稳定且受支持的 PHP 版本,包括 7.2、7.3 和 7.4。PHP 5.6、7.0 和 7.1 已被淘汰。

如果你在使用 cPanel 的 WordPress 主机上,通常可以通过在软件类别下单击 “PHP Select” 在 PHP 版本之间进行切换。

3. 使用复杂的用户名和密码

加强 WordPress 安全性的最佳方法之一就是仅使用巧妙的用户名和密码。听起来很容易吧?好吧,请查看 SplashData 的 2018 年度年度列表,其中列出了全年被盗的最受欢迎密码(按受欢迎程度排序)。

  • 123456
  • password
  • 123456789
  • 12345678
  • 12345
  • 111111
  • 1234567
  • sunshine
  • qwerty
  • iloveyou

没错!最受欢迎的密码是 “123456”,后跟一个惊人的 “password”。

WordPress 的核心wp_hash_password 功能使用 phpass 密码哈希框架和基于 MD5 的哈希。

某些最佳的安全性是从基础开始的。Google 对如何选择强密码有一些很好的建议。或者,你可以使用诸如 Strong Password Generator 的在线工具。

对每个网站使用不同的密码也很重要。最好的存储方式是在本地计算机上的加密数据库中。一个很好的免费工具是 KeePass。如果你不想沿着这条路线走,那么还有在线密码管理器,例如 1Password 或 LastPass。即使你的数据安全地托管在云中,但由于你不在多个站点中使用相同的密码,因此通常更安全。它还可以防止你使用便笺。

而且就你的 WordPress 安装而言,你永远不应使用默认的 “admin” 用户名。为管理员帐户创建唯一的 WordPress 用户名,并删除 “admin” 用户(如果存在)。为此,你可以在信息中心的 “用户” 下添加一个新用户,并为其分配 “管理员” 配置文件。

4. 始终使用最新版本的 WordPress,插件和主题

加强 WordPress 安全性的另一种非常重要的方法是始终保持其最新状态。这包括 WordPress 核心,插件和主题(都来自 WordPress 存储库和高级版)。这些文件的更新是有原因的,很多时候这些文件包括安全性增强和错误修复。

不幸的是,数以百万计的企业正在运行 WordPress 软件和插件的过时版本,但他们仍然相信自己走在正确的商业成功道路上。他们列举了不更新的原因,例如 “它们的站点将中断” 或 “核心修改将消失” 或 “插件 X 无法正常工作” 或 “它们只是不需要新功能”。

实际上,网站崩溃的主要原因是旧版 WordPress 中的错误。WordPress 团队和了解所涉及风险的专家开发人员从不建议进行核心修改。WordPress 更新主要包括必备的安全补丁以及运行最新插件所需的附加功能。

5. 锁定你的 WordPress 管理员

如果你使黑客更难找到某些后门,那么遭受攻击的可能性就较小。锁定 WordPress 管理区域并登录是增强安全性的好方法。实现此目的的两种好方法是,首先更改默认的 wp-admin 登录 URL,然后限制登录尝试。

如何更改你的 WordPress 登录 URL

默认情况下,你的 WordPress 网站的登录 URL 为 domain.com / wp-admin。问题之一是所有的机器人,黑客和脚本也都知道这一点。通过更改 URL,可以使自己成为目标,并更好地保护自己免受暴力攻击。这不是万能的解决方案,它只是可以帮助保护你的一个小技巧。

要更改你的 WordPress 登录 URL,我们建议使用免费的 WPS 隐藏登录 插件或高级 Perfmatters 插件。这两个插件都有一个简单的输入字段。只要记住要选择一个不会在机器人或脚本可能尝试扫描的列表中的独特内容即可。

6. 使用双重身份验证

当然,我们不能忘记两因素身份验证!无论你的密码多么安全,总会有别人发现它的风险。两因素身份验证涉及两步过程,在此过程中,你不仅需要密码登录,还需要第二种方法。通常是文本(SMS),电话或基于时间的一次性密码(TOTP)。在大多数情况下,这对于防止对 WordPress 网站的暴力攻击是 100%有效的。为什么?因为攻击者几乎不可能同时拥有你的密码和手机。

关于两因素身份验证,实际上有两部分。第一个是与虚拟主机提供商所拥有的帐户和 / 或仪表板。如果有人对此进行访问,他们可以更改你的密码,删除你的网站,更改 DNS 记录以及各种可怕的事情。

双重身份验证的第二部分与你的实际 WordPress 安装有关。为此,我们建议使用几个插件:

  • 双重身份验证
  • Google 身份验证器
  • 两要素认证

安装并配置上述插件之一后,通常你会在 WordPress 登录页面上有一个附加字段来输入安全代码。或者,使用 Duo 插件,你首先使用凭据登录,然后需要选择身份验证方法,例如 Duo Push,call 或 passcode。

该方法可以轻松地与更改你的默认登录 URL 结合使用,我们已经在前面进行了介绍。因此,不仅你不仅知道你的 WordPress 登录 URL,而且现在还需要额外的身份验证才能进入。

因此,请确保利用两因素身份验证,这是增强 WordPress 安全性的简便方法。

7. 使用 HTTPS 进行加密连接 - SSL 证书

加强 WordPress 安全性最容易被忽视的方法之一是安装 SSL 证书并通过 HTTPS 运行你的站点。HTTPS(安全超文本传输协议)是一种机制,允许你的浏览器或 Web 应用程序安全地与网站连接。一个很大的误解是,如果你不接受信用卡,则不需要 SSL。

好吧,让我们解释一下 HTTPS 除了电子商务之外还重要的几个原因。许多主机都通过 Let's Encrypt 提供免费的 SSL 证书。

1. 安全性

当然,HTTPS 的最大原因是增加了安全性,是的,这确实与电子商务站点密切相关。但是,你的登录信息有多重要?对于那些运行多作者 WordPress 网站的用户而言,如果你通过 HTTP 运行,则每次有人登录时,该信息都将以纯文本格式传递到服务器。HTTPS 对于维护网站和浏览器之间的安全连接至关重要。这样,你可以更好地阻止黑客和 / 或中间人访问你的网站。

因此,无论你有博客,新闻网站,代理商等,他们都可以从 HTTPS 中受益,因为这可以确保任何内容都不会以纯文本形式传递。

2.SEO

谷歌已经正式表示 HTTPS 是排名因素。尽管这只是一个很小的排名因素,但你们中的大多数人可能会利用 SERP 中获得的任何优势来击败竞争对手。

3.信任与信誉

根据 GlobalSign 的一项调查,28.9%的访客在其浏览器中寻找绿色的地址栏。其中有 77%的人担心自己的数据在网上被拦截或滥用。通过看到绿色的挂锁,客户将知道自己的数据更加安全,从而可以立即更加放心。

4.Chrome 警告

从 2018 年 7 月 24 日开始,Chrome 68 及更高版本开始将所有非 HTTPS 网站标记为 “不安全”。无论他们是否收集数据。这就是为什么 HTTPS 比以往更重要!

如果你的网站大部分流量来自 Chrome,那么这一点尤其重要。你可以在浏览器和操作系统的 “受众” 部分下的 Google Analytics(分析)中查看,以查看 WordPress 网站从 Google Chrome 获得的流量百分比。Google 向访问者更清楚地表明你的 WordPress 网站可能未在安全连接上运行。

8.隐藏你的 WordPress 版本

其他人对你的 WordPress 网站配置了解得越少越好。如果他们看到你正在运行过期的 WordPress 安装,这可能是入侵者的欢迎信号。默认情况下,WordPress 版本显示在站点源代码的标题中。再次,我们建议你仅确保你的 WordPress 安装始终是最新的,因此你不必为此担心。

WordPress 版本的源代码

你可以使用以下代码将其删除。只需将其添加到你的 WordPress 主题functions.php文件中即可。

function wp_version_remove_version() {
return '';
}
add_filter('the_generator', 'wp_version_remove_version');

显示 WordPress 版本的另一个地方readme.html是每个 WordPress 版本中都包含的默认文件(如下所示)。它位于安装的根目录中domain.com/readme.html。你可以通过 FTP 安全删除此文件。

自述文件中的 WordPress 版本

如果你运行的是 WordPress 5.0 或更高版本,则该版本将不再适用,因为文件中不再包含版本号。

9. 添加最新的 HTTP 安全标题

你可以采取的加强 WordPress 安全性的另一步骤是利用 HTTP 安全标头。这些通常在 Web 服务器级别进行配置,并告诉浏览器处理网站内容时的行为。有许多不同的 HTTP 安全标头,但以下通常是最重要的标头。

  • Content-Security Policy
  • X-XSS-Protection
  • Strict-Transport-Security
  • X-Frame-Options
  • Public-Key-Pins
  • X-Content-Type

你可以通过启动 Chrome devtools 并查看网站初始响应上的标头来检查 WordPress 网站上当前正在运行的标头。以下是 kinsta.com 上的示例。你可以看到,我们正在利用strict-transport-securityx-content-typex-frame-options头。

HTTP 安全标头

你还可以使用 Scott Helme 的免费 securityheaders.io 工具扫描 WordPress 网站。这将显示你当前在站点上具有哪些 HTTP 安全标头。如果不确定如何实施它们,可以随时询问你的房东是否可以提供帮助。

10.加强数据库安全性

有两种方法可以改善 WordPress 数据库的安全性。首先是使用一个聪明的数据库名称。如果你的网站名为排球技巧,则默认情况下,你的 WordPress 数据库最有可能名为wp_volleyballtricks。通过将数据库名称更改为更晦涩的名称,可以使黑客更难识别和访问数据库详细信息,从而有助于保护你的站点。

第二个建议是使用其他数据库表前缀。默认情况下,WordPress 使用wp_。将其更改为类似的内容39xw_可以更加安全。当你安装 WordPress 时,它会要求一个表前缀(如下所示)。

11.始终使用安全连接

我们无法强调使用安全连接的重要性!确保你的 WordPress 托管了它,采取了预防措施,例如提供 SFTP 或 SSH。SFTP 或安全文件传输协议(也称为 SSH 文件传输协议)是用于文件传输的网络协议。与标准 FTP 相比,这是一种更安全的方法。

确保正确设置家用路由器也很重要。如果有人入侵你的家庭网络,他们可以访问各种信息,包括可能存储有关 WordPress 网站的重要信息的位置。这里有一些简单的提示:

  • 不要启用远程管理(VPN)。典型的用户永远不会使用此功能,并且通过禁用它,可以避免将你的网络暴露给外界。
  • 默认情况下,路由器使用 IP 地址,例如 192.168.1.1。使用其他范围,例如 10.9.8.7。
  • 在你的 Wifi 上启用最高级别的加密。
  • IP 将你的 Wifi 列入白名单,以便只有具有密码和特定 IP 的人才能访问它。
  • 使路由器上的固件保持最新。

在公共场所登录 WordPress 网站时,请务必小心。请记住,星巴克不是一个安全的网络!在单击连接之前,请采取预防措施,例如验证网络 SSID。

12.检查文件和服务器权限

安装和 Web 服务器上的文件权限对于增强 WordPress 安全性至关重要。如果权限太宽松,那么有人可能会轻易访问你的网站并造成严重破坏。另一方面,如果你的权限太严格,则可能会破坏你网站的功能。因此,全面设置正确的权限很重要。

文件权限

  • 如果用户有权读取文件,则分配读取 权限。
  • 如果用户有权写入或修改文件,则分配许可权。
  • 如果用户有权运行文件和 / 或将其作为脚本执行,则分配执行权限。

目录权限

  • 如果用户有权访问所标识的文件夹 / 目录的内容,则会分配读取权限。
  • 如果用户有权添加或删除文件夹 / 目录中包含的文件,则分配权限。
  • 如果用户有权访问实际目录并执行功能和命令,包括删除文件夹 / 目录中的数据的能力,则分配执行权限。

以下是有关 WordPress 中文件和文件夹权限的一些典型权限建议。有关更深入的说明,请参阅有关更改文件权限的 WordPress Codex 文章。

  • 所有文件应为 644 或 640。例外:wp-config.php 应为 440 或 400,以防止服务器上的其他用户读取它。
  • 所有目录应为 755 或 750。
  • 永远不要给目录 777,甚至不要上传目录。

13.在 WordPress 仪表板中禁用文件编辑

许多 WordPress 网站具有多个用户和管理员,这会使 WordPress 安全更加复杂。一个非常糟糕的做法是授予作者或贡献者管理员访问权限,但不幸的是,这种情况一直存在。为用户提供正确的角色和权限很重要,这样他们就不会破坏任何内容。因此,仅禁用 WordPress 中的 “外观编辑器” 可能会有所帮助。

你们中的大多数人可能曾经在某个地点或另一个地点。你去外观编辑器中快速编辑某些内容,然后突然看到白屏死机。最好在本地编辑文件并通过 FTP 上传。当然,按照最佳实践,你应该首先在开发站点上测试类似的东西。

另外,如果你的 WordPress 网站遭到黑客入侵,他们可能要做的第一件事就是尝试通过外观编辑器编辑 PHP 文件或主题。这是他们在你的网站上执行恶意代码的快速方法。首先,如果他们不能从仪表板访问此内容,则可以帮助防止攻击。将以下代码放入wp-config.php文件中,以删除所有用户的 “edit_themes”,“ edit_plugins” 和 “ edit_files” 功能。

define('DISALLOW_FILE_EDIT',true);

如你所见,可以通过多种方法来加强 WordPress 安全性。使用巧妙的密码,使内核和插件保持最新状态,以及选择安全的托管 WordPress 主机,仅是少数几个可使你的 WordPress 网站安全运行的工具。对于你中的许多人来说,WordPress 网站既是你的业务,也是你的收入。因此,花点时间并早日实施上述安全最佳实践非常重要,这一点很重要。