WordPress 安全插件——你需要它们吗?

已发表: 2023-03-24

Google 为“WordPress 安全插件”提供了超过 2200 万个结果,并且官方 WordPress 插件页面上列出了 1,000 多个安全插件,不可否认它们的受欢迎程度。 但真正的问题是——您的网站上真的需要一个吗?

凭借它们的命名以及它们被宣传为能够为您的网站做些什么,这个领域的一些解决方案将自己定位为确保 WordPress 安全运行的必备插件。据推测,这样您就可以完全不再担心安全问题。

这与现实相去甚远。

事实上,使用构建不当的 WordPress 安全插件实际上会减慢您的网站速度——在请求甚至需要由您的服务器处理之前添加应该在网络级别实际发生的功能

所以,事不宜迟,让我们开始吧。

您需要 WordPress 安全插件吗?

每个网站都是恶意黑客的潜在目标——有些网站比其他网站更大。 这不是秘密。

最近(在撰写本文时)流行的出版物Fast Company的系统被继续发送令人反感的 Apple News 通知的人破坏了。

试图访问具有恶意目的的网站的人不一定针对较大的企业。 如果中小型企业假设这一点,他们可能会成为更容易的目标,因此可能会采取更少的预防措施。

除了处理您的网站在无法访问时可能产生的情况、浪费的时间和收入损失之外的麻烦,公司还有保护客户信息的法律义务。 这一义务伴随着监管行动的风险。

不用说,没有人愿意成为攻击的受害者。 但考虑到 WordPress 网站的全球生态系统的独立价值约为 6355 亿美元 - 出售安全承诺已被证明是一个很好的商机也就不足为奇了。

黑客如何攻击 WordPress 网站

WordPress 是开源的,因此在 WordPress 核心和任何主题或插件中发现的漏洞最终会成为公众所知。 不幸的是,这可能会在 WordPress 能够发布漏洞补丁之前发生,从而为那些有恶意的人创造了机会之窗。 坏人很清楚这个机会,允许他们开始自动瞄准可能运行易受攻击的主题或插件的网站——看看有什么可能。

即使没有这些漏洞,人和机器人使用暴力攻击来尝试访问站点的情况也很常见。 这涉及重复发送多个登录请求,以识别使用默认或常用用户名和密码组合的用户帐户。

有许多可能的方式可以入侵 WordPress 网站,这就是为什么在服务器级别采用广泛的方法如此重要的原因一些最有可能的黑客风险包括:

蛮力攻击:这种类型的攻击涉及反复尝试不同的用户名和密码组合,以试图获得对站点管理面板的访问权限。

SQL 注入:这种类型的攻击涉及将恶意代码注入网站的数据库,然后可用于窃取敏感信息或破坏网站的功能。

跨站点脚本 (XSS) :这种类型的攻击涉及将恶意代码注入网站,然后由用户的浏览器执行。这可用于窃取敏感信息,例如登录凭据,或将用户重定向到恶意网站。

文件注入:这种类型的攻击涉及将恶意文件上传到网站,例如后门程序或恶意软件。然后可以使用这些文件来未经授权访问该站点。

过时的软件:如果一个网站没有定期更新,它可能存在漏洞,可以被黑客利用。

网络钓鱼:这种类型的攻击通过创建虚假的登录页面来诱骗用户提供敏感信息,例如登录凭据、信用卡号和其他个人信息。

为什么安全插件不是明智的选择

凭借插件的工作方式,它们仅在请求到达服务器后才起作用。 这意味着安全插件只能在 PHP 级别挑战事物。 例如,这可能包括具有某种机制的登录,以在服务器收到请求后防止可能的未授权访问。

这样做的结果当然是在每次请求服务器时消耗额外的服务器资源,因为它位于请求和开始处理输出之间。 显然,这甚至不是万无一失的: pluginvulnerabilities.com针对零日漏洞测试了 31 个安全插件,其中只有 6 个能够抵御攻击。

WordPress 安全插件需要完全加载才能开始处理流量。 这意味着即使您的网站没有受到攻击,这些插件也会消耗资源

WordPress 安全插件本身也有自己的漏洞也不是闻所未闻,这些漏洞也可以被黑客利用。

例如,拥有超过 400 万用户的流行安全插件 Wordfence多年来报告了多个漏洞,例如跨站点脚本损坏的访问控制这些漏洞很快得到修补,但这并没有改变系统暴露的事实,尽管时间很短。

还有一种危险是安全插件会产生一种虚假的安全感以前的情况是,站点管理员安装了一个流行的安全插件,认为它可以保护他们的站点免受所有类型的攻击,并继续忽略其他重要的安全措施,例如定期软件更新、强密码、双因素身份验证, 和备份。

我们看到的另一个问题是安全插件会导致与现有主题或其他插件的兼容性问题 在某些情况下,这种冲突可能导致您的网站容易受到攻击。

使用安全插件遇到误报也很常见。 Overeager 插件可以将合法行为标记为恶意行为,这可能导致误报并给管理员和用户带来不便。

底线是,当涉及到您的 WordPress 网站的安全性时,没有可用于设置并忘记它的插件解决方案 安全是一种不断发展的有机野兽,需要时刻保持警惕。

是否有值得使用的安全插件?

那么如何保护 WordPress 网站呢?

首先,与在安全性、扩展性和性能方面具有竞争力的 WordPress 托管服务提供商合作——就像我们在 Servebolt 所做的那样。 我们承担与确保您网站的底层基础设施完全安全相关的繁重工作。

除此之外,您希望所有恶意(和潜在恶意)请求在到达您的服务器之前就被阻止——在它们有机会消耗资源之前,以便您可以为真正的网站访问者提供最佳体验

此类解决方案的一个示例是 Cloudflare。 Cloudflare 是一家提供各种互联网安全服务的公司,包括内容分发网络 (CDN)、域名系统 (DNS) 和 Web 应用程序防火墙 (WAF)。 这些服务协同工作以保护网站免受多种形式的网络攻击,例如 DDoS 攻击、SQL 注入和跨站点脚本 (XSS)。 Cloudflare 还提供额外的功能,例如 SSL/TLS 加密,以及机器人管理系统,以进一步增强网站的安全性。

在 Servebolt,除了这种方法之外,我们还提供两种托管的主动服务,加速域Servebolt CDN,它们可以加强您网站的安全性。它们建立在 Cloudflare 的企业产品之上,我们为所有注册的客户提供两个免费域。

我们使用基于服务器的安全产品,以及在通过我们实施时构建在 Cloudflare 的 WAF 之上。 我们添加了额外的安全措施来减少黑客攻击尝试,并在使用 Cloudflare 时防止直接访问服务器以减少暴力破解尝试。 这些措施被配置为自动阻止可能有害的请求,不需要任何配置或维护

除此之外,一些插件可以提高您网站的安全性,尽管这些插件绝不能提供一站式解决方案:

  • 双因素此插件由 WordPress 团队开发,它使用基于时间的一次性密码(OTP、Google Authenticator)、通用第二因素(FIDO U2F、YubiKey)、电子邮件和备份验证启用双因素身份验证代码。

如果您的凭据在 Internet 上泄露,即使大部分恶意流量被防火墙阻止,您的服务器也可能遭到破坏。 我们强烈建议使用双因素身份验证来阻止不良行为者。

我们在 Servebolt 使用的替代方案是Cloudflare Access

  • Patchstack &WPScan诸如 Patchstack 或 WPScan 之类的漏洞扫描器有助于跟踪漏洞。例如,WP Scan 会根据 WordPress 安全专家维护的包含37,000 多个漏洞的已知数据库,持续检查您的服务器是否面临威胁。 如果检测到威胁,它可以通过电子邮件或使用自定义 webhook触发通知,其中包含解决问题的所有必要信息和建议。

加强 WordPress 网站的技巧

使用加速域Servebolt CDN可以保护您的站点免受许多众所周知的攻击。 它们会自动实施登录速率限制和 XML-RPC,以防止对您网站的登录页面进行恶意暴力攻击。 但是您可以通过在您的网站上实施以下额外的安全措施来进一步增强您的安全性。

限制文件访问

服务器上的每个文件和文件夹都有与之关联的访问权限,这些权限指定谁可以读取、写入和执行给定的文件或目录。 尽管对站点的公共资产拥有开放权限似乎没什么大不了的,但这绝对是一种不好的做法。 此外,应该安全地锁定一些敏感文件,例如.htaccesswp-config.php

我们建议您尽可能锁定所有敏感文件,只有在绝对需要时才短暂地放松这些权限。

对于.htaccess ,您应该将权限级别更改为644 – 这将授予文件所有者读写访问权限,而所有其他用户只能读取该文件。

您可以通过将权限模式设置为400440来进一步限制wp-config.php文件的这些权限,这意味着只有所有者(或者,也可以选择所选组的其他成员)可以读取文件,而修改只能由 root 用户创建。

让我们详细了解一下特定WordPress目录的权限要求:

  • WordPress 根目录 (/):

除了.htaccess之外的所有文件都应该只能由您的帐户写入 - 将除.htaccess之外的所有文件的权限模式设置为 644

  • WordPress 管理区域 (/wp-admin/):

所有文件都应该只能由您的帐户写入——将所有文件的权限模式设置为 644。

  • WordPress 应用逻辑(/wp-includes/):

所有文件都应该只能由您的帐户写入——将所有文件的权限模式设置为 644。

  • 用户提供的内容(/wp-content/):

该目录旨在让您和 Web 服务器进程都可写——将所有文件的权限模式设置为 664。

但是,在 /wp-content/ 目录中,您可能会发现:

  • 主题文件(/wp-content/themes/):

如果你想使用内置的主题编辑器,所有的文件都需要被网络服务器进程写入。 如果您不需要使用编辑器,那么所有文件都只能由您的用户帐户写入。

  • 插件文件(/wp-content/plugins/):

所有文件都应该只能由您的用户帐户写入。 但是,某些第三方插件可能需要写入权限。 我们建议您删除写入权限,并根据具体情况仅将其授予特定插件。

在选定目录中禁用 PHP 文件执行

您可以通过限制在不需要的目录中执行 PHP 文件来进一步提高 WordPress 网站的安全性。

您应该禁用它的第一个位置是您的/wp-content/文件夹,因为用户可能会上传恶意 PHP 脚本并尝试运行它。

您可以通过在所需文件夹中创建名为.htaccess的文件并将以下代码粘贴到其中来禁用 PHP 执行:

 <文件 *.php>

拒绝所有人

</文件>

上面的代码创建了一个规则,禁止执行指定目录中的任何 PHP 文件。 这意味着即使黑客将恶意 PHP 代码注入文件,它也无法在服务器上执行,从而防止对您的网站造成任何损害。

禁用目录索引和浏览

目录浏览是 Web 服务器的一项功能,可显示网站给定目录中的所有可用文件和目录。 启用后,互联网上的任何人都可以看到网站任何路径上的所有内容。 这是一个主要的安全风险,因为它可以泄露机密信息和服务器配置。

例如,如果有人要访问https://www.example.com/static ,他们将能够看到(并下载)此路径中存在的所有文件。 强烈建议关闭此功能。 您可以通过将以下行附加到您的.htaccess文件来执行此操作。

 期权-指数

使用 Fail2ban 阻止暴力攻击

Fail2ban是一种服务器实用程序,可以根据预定义的条件动态创建防火墙规则来阻止 IP 地址。 如果用户连续 3 次登录失败,您可以将其与 WordPress 一起使用以暂时阻止用户。

不要使用“admin”用户名

对于黑客来说,具有管理权限的帐户相当于皇冠上的明珠——管理员帐户可以解锁服务器上的所有门。 毫不奇怪,这是黑客瞄准的第一个帐户。 最好为此管理员帐户使用不同的名称,以使他们更难执行此过程并阻止任何暴力攻击。

如果您仍在使用“admin”用户名,则应使用不同的名称创建第二个帐户并授予其管理员访问权限。登录您的第二个帐户 - 并删除旧的管理员帐户。

限制数据库用户权限

数据库安全对于任何网站都是至关重要的。 在服务器上安装多个站点时,为每个站点创建单独的数据库和用户。 这使得入侵者更难访问整个系统并窃取个人信息。

您还应该正确配置 MySQL 帐户权限并禁用任何不必要的功能,例如远程 TCP 连接。 如果数据库用户不在白名单位置,您还可以限制登录尝试。 例如,如果连接不是在本地主机上启动的,您可以阻止对根连接的访问​​。

此外,WordPress 只需要对 MySQL 数据库的读写权限即可实现正常功能。 如果您只向数据库用户授予 SELECT、INSERT、UPDATE 和 DELETE,一切仍会正常工作。 但是,有时第三方插件和 WordPress 更新在尝试更改数据库架构或创建新表时可能会导致错误。 如果您使用此安全措施,请仔细阅读每个插件的发行说明和文档。

更改 wp-admin URL

为了让黑客更难以对您的 WordPress 网站发起暴力攻击,请考虑将您的管理仪表板的默认 URL 更改为模糊的内容。 为此,您可以使用诸如WPS Hide LoginChange wp-admin login 之类的插件,它可以让您轻松自定义登录 URL。

禁用文件编辑

WordPress 中的文件编辑功能允许管理员直接从仪表板编辑主题和插件文件。 虽然它在设置网站时很有用,但如果管理员帐户遭到破坏,这可能会带来安全风险。 禁用文件编辑功能可以减轻这种风险。

这也将减少意外编辑更好地记录更改,因为所有新修订都将在版本控制中进行跟踪,并且需要在网站上线之前通过测试。

要在 WordPress 中禁用文件编辑,您可以将以下代码行添加到站点的 wp-config.php 文件中:

 定义 ('DISALLOW_FILE_EDIT', true );

更改数据库前缀

WordPress 在所有表名中使用通用的文本字符串,以便于识别。 更改此前缀会使恶意行为者在执行 SQL 注入攻击和其他形式的数据库攻击时难以猜测您的表名。

尽管这似乎是一个微小且微不足道的改进,但互联网上的大多数攻击都是由自动机器人执行的,它们只针对容易实现的目标。 通过更改默认值,您可以抵御大多数自动攻击

您当前的数据库前缀存储在 WordPress 根目录下的 wp-config.php 文件中。 默认值看起来像这样。

 $table_prefix = 'wp_';

您可以将“wp_”前缀替换为您选择的新的唯一前缀。 请记住,您只能使用字母、数字和下划线。 例如:

 $table_prefix = 'my_custom_prefix_123_';

将更改保存到 wp-config.php 文件后,您需要使用新名称手动更新现有 SQL 表。 如果您不确定如何执行此操作,可以使用Brozzme DB Prefix等插件

自动注销非活动用户

在 WordPress 中实施自动注销功能可以通过在指定的不活动时间后自动终止用户会话来帮助提高站点的安全性。 如果用户忘记注销或他们的设备无人看管,此功能有助于防止未经授权访问您的站点。

要在 WordPress 中实现自动注销功能,您可以使用Inactive Logout等插件 这样做将确保未经授权的个人无法访问敏感信息,从而有助于保护用户的隐私。

行动后报告——立即采取行动保护您的网站和声誉

每天有 30,000 个网站遭到黑客攻击,而 WordPress 为 43% 的网络提供支持,这意味着每天可能有 12,900 个 WordPress 网站遭到严重破坏。

不幸的是,在线提供的详细说明如何保持 WordPress 网站安全的建议要么含糊、过时,要么就是完全错误。 正是这个糟糕的建议,完全依赖第三方插件,以及一旦设置了安全性就可以忘记它的假设,导致了如此多的违规行为。

尽管安全永远不会“完成”,但它不必令人头疼,而且本文中的大部分建议对大多数人来说都相当简单明了。 当然,拥有一家强大的网络托管公司,认真对待安全是大多数人的重要第一步。

关于保持 WordPress 网站安全的任何问题?请随时与我们联系,我们很乐意向您介绍 Servebolt Cloud 如何帮助您为访客提供最佳体验。 或者,如果本指南已经回答了您所有的问题,并且您已准备好尝试使用 Servebolt 方法……

对经验上更快的托管托管感兴趣? 试试我们的WordPress 托管方法

  • 可扩展性:在真实用户工作负载测试中,Servebolt 的平均响应时间为 65 毫秒,比第二名快 4.9 倍。
  • 最快的全球加载时间: 1.26 秒的平均页面加载时间使我们在全球 WebPageTest 结果列表中名列前茅。
  • 最快的计算速度: Servebolt服务器提供前所未有的数据库速度,每秒处理的查询数是平均水平的2.44倍,运行PHP的速度是第二名的2.6倍!
  • 完美的安全性和正常运行时间:所有监视器的正常运行时间均为 100%,并且我们的 SSL 实施获得了 A+ 评级,您可以放心,您的网站是在线且安全的。