Skip to main content

WordPress托管最佳实践 – 安全

安全


该页面的目标是通知管理WordPress站点的用户关于一般安全最佳实践的环境级别项目(如文件权限)以及应用程序级别项目(如设置适当的用户角色),以便他们拥有比在没有额外配置的情况下设置WordPress更安全的基础。

WordPress安全性最重要的事情是保持WordPress本身以及所有安装的插件和主题的最新状态。确保您正在使用主动接收更新的主题和插件也很重要。

WordPress非常致力于为WordPress网站管理员及其用户提供安全的体验。有关WordPress官方对安全的立场以及关于WordPress安全总体目标的一般性讨论的更多信息,请参见WordPress.org关于WordPress本身的章节。

本指南的以下部分将提供有关如何保持WordPress安全的说明。本指南从WordPress Codex的Hardening WordPress指南中大量借鉴。虽然WordPress Codex和本指南都涵盖了安全性,但本指南应被视为WordPress安全性的权威最佳实践文档。

托管提供商通常会采取措施默认提供不同程度的安全环境;然而,你的WordPress网站的安全性最终是你的责任。保持任何系统,不仅仅是WordPress,安全是一项持续的工作。良好的安全性需要认真规划和定期维护。

安全主要包括减少风险和恢复计划。大多数安全计划都将重点放在最大限度地降低未经授权访问的风险上,但风险永远无法成功降至零。只要存在一定风险,您必须计划恢复,以便在发生问题时您的网站不会完全丢失,并且您的网站可以快速恢复正常运行。

安全性也超过WordPress。这也是关于确保您的托管环境是安全的,并且您的个人在线实践和行为可以保证您的安全。良好的安全性取决于正在使用的技术和使用该技术的人员。过时或过时的技术可能存在可能使WordPress网站处于危险中的错误或漏洞。人们不良的在线做法也可能会让您的WordPress网站面临风险。务必确保您不仅保持您使用的最新技术和维护的技术,而且确保您在使用互联网和使用WordPress网站或托管服务时的安全性。

禁止多次登录尝试


针对互联网服务的最常见类型攻击之一是强力登录攻击。由于计算机的威力,这次攻击非常简单。在这次攻击中,恶意用户试图猜测你的WordPress网站的管理员用户名和密码。恶意用户不需要知道任何关于您的WordPress网站或您的登录信息来执行此攻击。使用电脑,你可以做出每秒数千次的猜测。恶意软件开发人员也编写了一些可以为您猜测的程序,而这些程序使用了复杂的技巧和技巧,可以使得外观精美的密码非常容易被猜出。

针对这种攻击的最佳保护是使用真正的强密码。使用密码管理器可以让密码更加简单。如果您想了解更多关于密码管理器的信息,[维基百科有一篇关于密码管理器的文章](https://en.wikipedia.org/wiki/Password_manager)。它还有一个[密码管理器列表](https://en.wikipedia.org/wiki/List_of_password_managers),如果你想找到一个使用。

还有一些步骤可以保护WordPress免遭多次登录尝试。这些步骤主要归结为添加一个额外的认证层,并限制登录到WordPress管理仪表板。额外的身份验证和限制登录层可以在服务器级或通过WordPress插件实现。

下面的一些建议是从WordPress Codex的野蛮力量攻击指南中借用的。

关于用户名的说明

一些WordPress安全指南建议为WordPress管理员帐户使用唯一的用户名。尽管用户愿意,WordPress的REST API允许任何人查看您的WordPress网站的许多用户。您可以通过将/ wp-json / wp / v2 / users放置在您的WordPress网站网址的末尾来查看。输出将被格式化以供程序使用,但它应该仍然有点可读性。

服务器级别

密码保护wp-login.php

对于经历了持续和频繁的暴力登录攻击的个别WordPress网站,使用HTTP基本认证向wp-login.php添加第二个密码可以帮助保护网站,同时减少攻击对托管服务器的影响。如果您正在托管自己的WordPress网站,您的托管服务提供商可能会为您提供这样的工具,特别是在他们使用流行的Web面板软件(如cPanel或Plesk)时。这种方法并不适用于拥有大量网站的WordPress主机。其他安全方法(如ModSecurity规则或其他Web应用程序防火墙)可能更适合于更大规模地防止此类攻击。

通过IP地址限制对wp-login.php的访问

如果密码保护wp-login.php不适合单个WordPress网站,则可以限制对Wordpress管理仪表板登录到特定IP地址的访问。这可以完全锁定并阻止未经授权的用户登录到WordPress管理仪表板,但是这种限制可能使访问WordPress管理仪表板不太方便合法用户使用。像使用HTTP基本认证保护wp-login.php的密码一样,这种保护通常不适合托管公司跨整个平台或服务器应用。它通常最好单独应用于WordPress网站,这些网站正在经历持续且频繁的暴力攻击,这些攻击无法通过其他方式轻松解决。

许多互联网服务提供商经常更改其客户的IP地址。如果您的ISP更改您的IP地址,则必须先手动更新授权IP地址的白名单,然后才能登录到WordPress管理仪表板。

ModSecurity和多次登录尝试


ModSecurity是一种流行的Web应用程序防火墙,用于动态阻止恶意请求。 ModSecurity监视访问者为任何网站所做的请求,并阻止符合关于什么是和什么不是合法活动的特定规则的请求。如果您从现有的托管服务提供商处购买了托管服务,您的托管服务提供商可能已经配置了ModSecurity,通常会使用他们自己定制的规则。在这种情况下,请联系您的托管服务提供商以获取更多关于他们如何使用ModSecurity来保护您的WordPress网站的信息。

对于托管公司,ModSecurity是保护服务器的非常强大的工具。但是,它比较复杂,配置起来可能很困难。鉴于ModSecurity监控所有网络流量,对ModSecurity规则的更改很容易导致合法的Web活动被ModSecurity阻止。在对ModSecurity进行任何修改时建议小心。希望使用ModSecurity或更改其配置的主机提供商应进一步研究ModSecurity或咨询ModSecurity专家。

验证码

验证码是帮助防止僵尸程序能够完成网站表单的测试,例如WordPress管理仪表板登录。验证码通常是一种测试,需要一定程度的人力输入才能提交表格。有几个插件可以用来将验证码添加到WordPress表单以及WordPress管理仪表板登录页面。这些工具还可以帮助防止暴力登录攻击,同时为WordPress用户提供更方便的登录体验。

插件

有几个插件可以防止用最少的配置对WordPress进行暴力登录攻击。插件可以在WordPress插件中找到。

您应该在安装之前查看一个插件,以确保它由开发人员主动维护,并与当前版本的WordPress保持同步。您还应该了解插件在安装WordPress时对WordPress所做的更改。

双因素认证

双因素身份验证(也称为2FA或两步身份验证)是一种登录方案,当用户尝试使用启用双因素身份验证的登录服务时,使用单独的第二种身份验证方式。确切的双因素身份验证设置因服务而异,但通常涉及在尝试登录服务时输入代码或与智能手机上的应用程序进行交互。 WordPress默认情况下没有双因素身份验证;不过,有几个插件为自主托管的WordPress网站提供双因素身份验证。

双因素身份验证非常有用,因为如果有人获得您的账户的密码,他们仍然无法在没有第二个身份验证表单的情况下登录。例如,Google对用户帐户进行双因素身份验证。启用双因素身份验证后,Google会要求您输入发送到智能手机的一次性唯一代码,或者在尝试在以前没有使用过的设备或计算机上登录到您的Google帐户后与智能手机进行互动用于登录。如果某人以某种方式获得了您的Google帐户的密码,那么未经授权的用户将无法访问您的帐户,因为未经授权的用户无法提供代码或进行必要的交互,因为这些信息与您的智能手机有关。当有人访问您的Google帐户时,您也会立即收到通知,因为您会收到一次性使用的唯一代码或与智能手机进行登录交互的提示。

双因素身份验证可以使登录服务变得不太方便,因为需要登录第二种身份验证形式(您的智能手机,以Google为例)。但对于关键服务,双因素身份验证极大地提高了您帐户的安全性。

文件系统


您的主机帐户文件系统的设置可能会对WordPress的安全性产生重大影响。设置适当的文件保留和所有权对于确保未经授权的用户无法访问或修改WordPress文件非常重要。

文件权限

这部分的文件权限完全集中在Linux服务器上的文件权限。如果您使用Windows服务器,请咨询您的托管服务提供商或Windows服务器管理员以获取帮助,以设置适当的权限。

Linux文件权限主要由三个组件组成 – 文件或文件夹的所有者拥有的权限,拥有该文件或文件夹的组的权限成员以及其他任何人访问或修改文件和文件夹的权限。这三个权限组件通常使用三个数字按照所有者的权限级别,组的权限级别以及所有人的权限级别来表示。技术上讲有第四个组件,但这超出了我们需要知道的保护WordPress的安全。这里不会讨论。

每个用户,组和其他人有三种访问权限。它们是读访问,写访问和执行访问。读访问让你读取文件或目录的内容。写入权限允许您修改文件或目录。并且执行访问让您像运行程序或脚本一样运行文件。

文件权限的数字表示

Linux在内部将这些不同类型的访问存储为位(即以二进制形式)。它们通常以人类可读形式表示为数字4(读取访问),2(写入访问)和1(执行访问)。这些数字加在一起表示您可以拥有的三种访问的不同组合。

文件权限的符号表示

一些程序将使用字母而不是数字来表示不同类型的访问。使用符号时,访问类型仍然是读取访问,写入访问和执行访问。使用“r”(读取访问),“w”(写入访问),“x”(执行访问)来表示访问类型而不是数字。这三个字母组合在一起(例如“rwx”,“rw”,“wx”等)来表示你可以拥有的三种访问的不同组合。

Linux文件权限的示例


符号数字权限
———- 000没有权限
-r ——– 400只读取用户
-rw ——- 600仅供用户读取和写入
-rwx —— 700仅为用户读取,写入和执行
-rwxr-xr-x 755读取,写入和执行用户,只读取和执行组和其他人
-rw-r – r– 644为用户读写,只为团体和其他人阅读
-rwxrwxrwx 777读取,写入和执行用户,组和其他人不要使用。 安全风险。
推荐默认的Linux文件权限

WordPress的默认推荐文件权限为文件夹755(-rwxr-xr-x)和文件644(-rw-r – r–)。 这些权限将确保WordPress可以正常运行,同时保护WordPress免受恶意或未经授权的用户修改其文件。

推荐默认的Linux文件权限

WordPress的默认推荐文件权限为文件夹755(-rwxr-xr-x)和文件644(-rw-r – r–)。 这些权限将确保WordPress可以正常运行,同时保护WordPress免受恶意或未经授权的用户修改其文件。

WordPress用户和角色


备份WordPress

WordPress有两个主要组件 – 网站文件和WordPress数据库。尽管WordPress网站文件是WordPress所必需的,但您的个人WordPress网站数据存储在WordPress数据库内。丢失WordPress文件可能会导致您的网站长时间停机;但是,丢失WordPress数据库意味着如果您没有数据库备份或以某种方式恢复数据库,您的网站将永远丢失。

有一个备份WordPress的计划是非常重要的。首先,保持WordPress安全可能更重要。即使您的托管服务提供商可能会保留自动备份,但最好在不同地点存储不同时间段的多个不同备份。最终,你对你备份WordPress网站的能力负责。

备份和黑客入侵的网站

备份是网站遭到恶意用户攻击和更改后恢复的非常重要的部分。在发生黑客攻击之前从干净备份恢复是确保没有其他恶意文件的唯一方法,并且不会对优秀文件进行剩余更改,从而导致进一步的攻击。

WordPress备份插件

有几个插件用于备份WordPress文件和数据库。备份插件可让您通过WordPress管理控制面板进行方便,完整的备份。有些支持自动备份。通过搜索插件目录可以轻松找到WordPress备份插件。大多数插件允许您手动创建备份,然后可以将其下载到本地计算机。

有关自动备份的注意事项

许多WordPress备份插件提供自动备份。自动备份可以使得最近的WordPress备份非常方便;但是,如果您使用提供WordPress自动备份的插件,则必须采取一些额外步骤来确保自己的安全。

自动备份可以轻松填充您的主机帐户或服务器上的所有磁盘空间,如果旧的备份在一段时间后不会自动删除。

当某个WordPress网站发生某些更改或黑客攻击时,自动备份可能会造成不良备份,例如,这些更改或黑客已经发生了足以让自动备份运行的足够长时间未检测到的情况。根据识别黑客已经发生或者WordPress存在问题需要多长时间,自动备份插件可能有足够的时间来覆盖在黑客或问题发生之前完成的任何好的备份。

如果自动备份提供自动备份,自动备份还可以将您的主机帐户或服务器的磁盘空间超出主机提供商的限制,以自动备份您的主机帐户或服务器。

某些托管提供商也不允许您在您的托管帐户或服务器上备份备份,并且可能会在一段时间后未经您的同意删除备份。

考虑检查您的托管服务提供商的备份策略和备份存储。许多托管服务提供商可以提供很好的建议和支持,为WordPress设置全面的多层次备份解决方案。

手动备份WordPress

您不需要使用WordPress备份插件来备份WordPress。 WordPress文件和数据库可以使用各种不同的工具和技术手动复制和导出,具体取决于您对主机帐户的文件和数据库的访问级别。

使用主机提供商的控制面板或工具

大多数主机提供商都使用控制面板或管理工具,通过它们的界面创建不同类型的备份。请咨询您的托管服务提供商的文档或联系他们的支持团队寻求帮助,使用他们的工具来生成WordPress的备份。

备份WordPress文件

可以使用任何工具来备份WordPress文件,这些工具允许您访问并从您的主机帐户下载文件。这些包括但不限于FTP客户端,命令行/ shell客户端和Web客户端。请咨询您的托管服务提供商的文档或联系他们的支持团队,以获取有关使用FTP,命令行或Web客户端访问和将文件下载到您的计算机的帮助。

备份WordPress数据库

WordPress数据库不存储在您的主机帐户中的文件中,可以轻松或简单地下载或复制。它必须使用数据库备份工具导出。大多数主机提供商提供访问和备份数据库的工具。如果您的托管帐户没有数据库管理工具,您可以安装phpMyAdmin,一种用于管理MySQL数据库的常用开源工具(WordPress数据库通常是MySQL数据库)。 phpMyAdmin的制作者为安装phpMyAdmin编写了文档。安装phpMyAdmin之后,您应该能够使用您的wp-config.php文件中的WordPress数据库用户名和数据库密码使用phpMyAdmin进行登录。

除了备份数据库之外,phpMyAdmin还可用于管理和更改数据库。注意不要通过phpMyAdmin意外编辑你的数据库。

要通过phpMyAdmin备份数据库,请通过在phpMyAdmin页面左侧的树视图中单击数据库名称来在phpMyAdmin中选择数据库。 phpMyAdmin应该重新加载并显示当前选定数据库中的表格。接下来,点击页面顶部菜单中的“导出”。应该有用于导出数据库的“快速”选项和“自定义”选项。快速选项通常足够用于基本备份。如果选择自定义选项,请选择数据库中的所有表,从格式下拉菜单中选择SQL,选中“添加DROP TABLE”,然后单击执行。数据库将通过您的互联网浏览器下载。

配置文件的安全性

wp-config.php文件包含数据库凭证和其他敏感信息。安装WordPress后,可以执行wp-config.php文件。如果出于某种原因,Web服务器处理PHP文件被关闭,黑客可以访问wp-config.php文件的内容。作为预防措施,您应该验证未经授权访问wp-config.php文件是否被禁止对文件进行网络访问。