您可以采取多种措施来确保您的网站安全。这包括从更新插件和执行备份等简单任务到更复杂的策略,例如迁移到具有更强大安全措施的托管服务提供商。
1. 保持 WordPress、插件和主题更新
当插件或主题在数月或数年内未更新时,黑客能通过寻找软件中的漏洞并找到进入网站的方法。
保护自己免受这些潜在的威胁使 WordPress 及其所有组件在允许的情况下保持最新状态。
2. 更改默认的“admin”用户名
使用“admin”或“administrator”默认的用户名会让攻击者更容易强行进入。
许多黑客试图通过尝试尽可能多的用户名和密码组合来闯入网站。这称为暴力攻击。如果有人已经知道您的用户名,这意味着他们只需要猜测一个登录因素。
WordPress 不允许您在设置管理员帐户后更改用户名。若要进行更改,需要创建一个新帐户,为其指定管理员用户角色,然后删除旧帐户。
为此,请转到“用户”→“添加新用户”。然后,输入帐户的详细信息(包括难以猜测的用户名),然后从“角色”菜单中选择“管理员”。
3.使用强密码并定期更改密码
虽然有一些方法可以重新获得对被盗帐户的访问权限,但这个过程可能很艰巨。此外,黑客可能会对您的内容和声誉造成无法弥补的损害。
为了提高安全性,您需要定期更改密码。这样,如果凭据泄露,您的帐户将是安全的。
4. 实现双因素身份验证 (2FA)
启用 2FA 后,您的站点将需要额外的验证方法才能用户登录。通常,这是通过短信、电子邮件或身份验证应用程序发送的一次性代码。
由于黑客无法访问您的移动设备或电子邮件,因此他们将无法登录您的帐户。一些网站提供使用 2FA 的选项,而另一些网站则强制执行。
5.通过SSL证书使用HTTPS加密
安全套接字层 (SSL) 证书使您的网站能够通过 HTTPS(HTTP 的安全版本)加载。该证书验证您的网站是否真实,以及浏览器和服务器之间的通信是否已加密。
您可以从多个机构免费获得SSL证书,例如Let's Encrypt。许多WordPress网络主机会自动为您的网站设置SSL证书。其他网络主机将允许您通过cPanel手动设置证书。
6.安装信誉良好的安全插件
WordPress 安全插件通常带有一系列功能和工具,可帮助您保护您的网站。这些通常包括:
垃圾邮件防护
拒绝服务 (DDoS) 攻击防护
Web 应用程序防火墙 (WAF)
恶意软件扫描和清理
自动备份
7.定期备份您的网站
定期备份数据可以说是确保数据安全的最重要的事情。对于网站,在发生安全漏洞或故障时,完整备份可以成为救命稻草。
WordPress有很多备份选项。某些网络主机提供自动备份作为托管计划的一部分。但是最好不要完全依赖这些备份。如果您的服务器因编码错误、主机错误或黑客攻击而受到损害,备份也可能受到损害。更好的选择是增加异地存储备份。
如果您不断向网站添加新内容,这些实时备份是理想的选择。这意味着您将始终拥有最新版本的副本。此外,备份存储在异地,因此即使您的站点完全关闭,您也可以随时访问它们。
8. 使用 Web 应用程序防火墙 (WAF)
WAF 是一种防火墙,旨在过滤进出网站的流量。它使用规则来过滤特定类型的流量,并且可以将已知的恶意 IP 列入黑名单。
WAF 旨在帮助您阻止常见类型的网络攻击,包括 SQL 注入、跨站点脚本 (XSS) 和跨站点请求伪造 (CSRF)。他们之所以能够做到这一点,要归功于他们复杂的规则系统。
防火墙的规则越全面,就越有效。许多安全插件都拥有复杂的 WAF,其规则集是根据多年处理 WordPress 攻击的经验设计的。
虽然您可以手动设置和配置 WAF,但最好的办法是使用 Web 主机或可以设置 WAF 的安全插件。这样,只需打开防火墙即可。
9.定期扫描恶意软件
扫描您的网站以查找恶意软件涉及使用第三方工具或安全插件。该软件会浏览您网站的文件、插件和主题以查找感染恶意的软件。如果它检测到任何不对劲的地方,它会让你知道问题出在哪里。
现在,大多数防病毒软件只是在后台运行,只有在出现问题时才会打扰您。
如果您采取措施保护您的网站,恶意软件感染应该非常罕见。即便如此,设置自动恶意软件扫描也没有什么坏处,以防您受到零日漏洞或其他类型的难以阻止的攻击的攻击。
10.阻止表单和评论垃圾邮件
任何具有开放评论部分或表单的 WordPress 网站都可能遇到垃圾邮件。
您可以尝试使用 CAPTCHA 来阻止机器人垃圾邮件提交,但您不可避免地会惹恼一些用户,并降低您的网站蓬勃发展所需的合法参与度和转化率。
11. 使用 FTP 实现安全文件权限
基于 UNIX 的系统中的每个文件和文件夹都具有一组权限。这些权限由三个数字集表示。例如,“777”表示每个用户都对文件或目录具有完全写入、读取和执行权限。
三个数字中的第一个表示谁拥有文件或目录。第二个数字代表所有者组中的帐户,第三个数字代表其他每个用户。
在上面的示例中, 7 表示这些类型的用户中的每一个都具有读取 (4)、写入 (2) 和执行 (1) 权限。如果你把这些值加起来,你会得到一个七。
您分配给 WordPress 文件和目录的文件权限将控制谁可以访问、读取和编辑它们。WordPress 的推荐文件权限是目录的 755 和文件的 644。
要设置这些权限,您需要通过文件传输协议 (FTP) 工具(如 FileZilla)连接到您的网站。您可以从您的托管帐户获取 FTP 凭据。
连接到站点后,导航到根目录(通常标记为 public_html)。在此文件夹中,您可以选择所需的任何子目录或文件,右键单击它,然后选择显示“文件权限”的选项。
将弹出一个新窗口,您可以在其中设置通过“数值”字段选择的文件或目录的权限。
如果更改目录的权限,您还会看到一个选项,上面写着递归到子目录。这将使您能够为所有子目录或文件设置相同的权限。
请注意,当涉及到 WordPress 文件的最佳权限时,该规则有一些例外。其中之一是 wp-config.php 文件。
12. 保护您的 wp-config.php 文件
wp-config.php文件包括有关您的网站及其数据库的关键信息。它是最重要的 WordPress 核心文件之一,这意味着您应该采取其他措施来保护它。
在权限方面,最好将 wp-config.php 设置为 400 或 440。如果您还记得上一部分的细分,您将知道这些权限值转换为:
400:只有所有者才能读取文件。
440:只有所有者和所有者组中的用户才能读取文件。
这将完全删除wp-config.php的写入权限。这通常是一个安全的选择,因为它可以防止任何人修改文件的设置。
保护wp-config.php的另一种方法是将根目录上方移动一级。如果 WordPress 在默认位置找不到该文件,它将在一个目录中查找该文件。
这意味着WordPress仍将正常运行,但攻击者可能会被找不到文件的事实所愚弄。
13.禁用wp-config.php文件中的文件编辑
WordPress 提供了多种编辑文件的选项。其中之一是使用插件和主题文件编辑器,它们可从仪表板获得。
这些文件编辑器使您能够更改站点的代码,而无需通过 FTP 连接到它。这种方法的缺点是,如果黑客获得了有权使用这些编辑器的帐户的访问权限,他们可能会对您的网站造成严重破坏。
因此,您可能需要考虑在 WordPress 中禁用文件编辑。为此,您可以打开 wp-config.php 文件并向其添加以下代码行:
define('DISALLOW_FILE_EDIT', true);
请注意,某些主题和插件将自动禁用文件编辑。如果您在仪表板中看不到文件或主题编辑器,则可能是您正在使用这些工具之一。
14. 限制 .htaccess 文件中的目录浏览
如果启用了目录浏览,您不会收到 403 禁止的错误,而是会看到该文件夹中的子目录和文件列表。
如果要保护站点,则必须禁用目录浏览。如果有人可以看到您网站文件夹的内容,他们可以获得很多信息,例如您使用的主题和插件。他们还将能够不受限制地浏览媒体文件,从隐私的角度来看,这是很糟糕的。
默认情况下,大多数 WordPress 网络主机都禁用目录浏览。如果您的不提供此功能,您可以通过编辑根目录中的 .htaccess 文件来自行启用它。
为此,请打开该文件并添加以下代码行:
Options -Indexes
保存更改并关闭文件。现在,如果您尝试通过浏览器导航到某个目录,您将收到一条错误消息,提示您无权访问它。
15. 限制对 wp-admin 目录的访问
wp-admin 是 WordPress 目录的默认位置。如果您访问您网站的主页并将 /wp-admin 添加到 URL 的末尾,您将进入 WordPress 仪表板(在通过登录页面后)。
这种结构是WordPress网站的标准。这样,你和攻击者都可以轻松查找和访问仪表板。
保护 WordPress 管理员的一种方法是使用密码保护它。这样,用户在通过登录页面后需要输入不同的密码。
如果您的虚拟主机使用 cPanel,您可以使用目录隐私工具向 wp-admin 目录添加密码。
进入此工具后,浏览文件夹,直到找到 wp-admin 目录。单击它旁边的“编辑”按钮,然后在下一页上勾选“密码保护此目录”选项。
现在,目录隐私工具将要求您为wp-admin设置密码。保存密码后,尝试访问 WordPress 仪表板。密码弹出窗口应直接出现在浏览器中。
16.隐藏您的wp-admin登录URL
保护 WordPress 管理员的另一种方法是更改指向登录页面的 URL。如果将此策略与上一节中介绍的其他密码保护相结合,则攻击者应该无法进入您网站的仪表板。
您可以手动更改wp-login URL,但使用插件可以简化该过程。WPS Hide Login 是一个简单的工具,可让您设置新的登录 URL,而无需编辑任何站点的代码。
安装插件后,转到“设置”→“WPS 隐藏登录”,然后查找显示“登录网址”的部分。使用该选项旁边的字段,并将默认登录 URL 替换为自定义 URL。
您可能希望使用字母和数字的随机组合。这将使攻击者更难猜测。只需确保为新的登录页面添加书签,或设置一个您可以记住的 URL。
17. 限制登录尝试
限制用户在特定时间段内可以进行的登录尝试次数。此限制不会影响普通用户,但应该足以挫败使用机器人的暴力攻击。通过限制他们尝试新凭据的速度,可以最大程度地减少他们成功的机会。
18. 自动注销空闲用户
这可能不是问题,具体取决于您从哪里登录,但它仍然是一项值得实施的安全措施。当有其他人可以访问您网站的仪表板时,尤其适用。
WordPress 不会自动注销用户。要添加此功能,您需要使用像 Inactive Logout 这样的插件。
安装插件后,转到“设置”→“非活动注销 ”→“常规设置”。查找“空闲超时”选项,并将该值设置为所需的任何计时器(以分钟为单位)。
这样如果用户在该时间段内处于空闲状态,则用户将自动注销。该插件还允许您配置一条消息,告知他们原因。
19.更改默认的WordPress数据库前缀
每个 WordPress 数据库都有一个名称。默认情况下,该名称为 wp_something,“something”代表数据库的实际名称。
这里真正重要的是前缀。默认情况下,WordPress使用wp_前缀,这意味着攻击者可以很容易地猜出数据库的全名。
只需更改前缀,攻击者就会更加困难地完成该任务。不幸的是,更改 WordPress 数据库前缀并不是那么简单。
此过程需要您编辑两个核心文件并对数据库本身进行更改。因此在执行操作之前,您需要执行完整的网站备份。
首先,通过FTP访问网站并转到wp-config.php文件。打开文件并在其中查找以下行:
$table_prefix = ‘wp_’;
您可以继续将“wp”前缀替换为其他内容,例如“newprefix”。这只是一个例子。
现在,保存文件并使用 phpMyAdmin 访问数据库。从左侧列表中选择 WordPress 数据库,然后单击表格列表上方屏幕顶部菜单中的 SQL。
这将打开一个页面,您可以在其中执行影响数据库的 SQL 命令。现在需要做的是替换数据库中所有表的现有表前缀。默认情况下,这意味着以下表:
wp_options
wp_postmeta
wp_posts
wp_term_relationships
wp_term_taxonomy
wp_terms
wp_commentmeta
wp_comments
wp_links
请记住,某些插件也可能向数据库添加新表。您还需要更新这些表的前缀。
对于每个表,您需要运行以下 SQL 命令:
RENAME table wp_xxxx TO newname_xxxx;
“xxxx”占位符代表下划线后每个表的名称。同样,您需要将newname_前缀更改为之前在修改wp-config.php时设置的前缀。
根据需要对数据库中的每个表重复此过程。准备就绪后,可以返回到仪表板。
更改数据库前缀可能会破坏您网站上的任何活动插件和主题。这些工具不会识别更新的数据库,除非您停用并重新激活它们。
因此,您需要浏览网站上的每个插件和主题并遵循该过程。完成后,检查您的网站以确保一切正常。
20.隐藏您的WordPress版本
过去,WordPress用于在页脚中显示网站正在使用的软件版本。我们的想法是,这些信息对于故障排除目的很有用,如果前端访问者可以随时获得这些信息,那么查找起来会容易得多。
这种方法的问题在于,显示版本号意味着攻击者可以查找特定于该版本的漏洞。这为恶意行为者提供了大量信息,他们可以利用这些信息对您的网站进行攻击。
另外,此功能对您没有实际好处。毕竟,您可以随时从仪表板检查您网站的 WordPress 版本。
21. 使您的 PHP 版本保持最新
您可能知道,WordPress主要建立在PHP上。它依靠这种编程语言来执行大多数管理任务。
PHP也是一个软件。这意味着它会定期更新新特性和功能,并改进性能。
WordPress 要求您的服务器运行 PHP 7.4 或更高版本。PHP有更新的版本,每个版本都为软件带来了性能和安全升级。这些升级也延续到WordPress本身。
随着新版本的出现,大多数信誉良好的网络主机都会在其服务器上更新PHP。一些提供商甚至允许您手动在版本之间切换(这对于解决 WordPress 网站上的错误可能是必需的)。
您可以通过导航到 WordPress 仪表板中的“设置”→“站点运行状况”→“信息”→服务器来检查您的站点正在运行的 PHP 版本。在这里,您将看到服务器配置的概述,包括它使用的 PHP 版本。
22. 关闭 PHP 错误报告
WordPress 带有一个调试工具,使 CMS 能够记录 PHP 错误。您可以使用这些错误报告来解决您网站上的技术问题。
不幸的是,这些报告也可能导致安全问题。如果攻击者可以访问 PHP 错误日志,他们可以获得有关您网站如何工作的大量信息。他们可能能够看到您网站上哪些插件处于活动状态,以及您网站上存在 PHP 问题的重要文件。
除非您正在积极解决 WordPress 中的错误,否则您不需要启用 PHP 错误报告。如果您使用它来诊断问题,则需要在获得所需信息后立即禁用 WordPress 调试模式。
禁用 PHP 错误报告需要您修改位于 WordPress 根目录中的wp-config.php文件。您可以通过 FTP 访问该目录。
然后,打开wp-config.php文件并添加以下代码行:
define ( ‘WP_DEBUG’, true );
将 true 值更改为 false 并保存文件。这将禁用 WordPress 中的错误日志。
您可以根据需要随时重新打开它们。您只需将值更改回 true。
23.删除不必要的插件和主题
插件和主题使 WordPress 成为一个多功能的平台。它们为您的网站添加新功能,并使您能够自定义其设计。
在确定您最喜欢的主题之前,您可能会尝试许多不同的主题,但永远不要卸载其余的主题。
您网站上的每个活动插件或不使用的主题都存在安全风险。
但是,这里有一个例外。出于故障排除的目的,您可能希望保持默认主题(如 Twenty Twenty-Three)已安装但处于非活动状态。
24. 删除不必要的用户帐户
有些人可能会重复使用其个人帐户中的凭据来登录您的网站。如果这些凭据在安全漏洞中泄露,攻击者将能够使用它们来访问您的网站。
在 WordPress 中删除用户帐户很简单。为此,请转到“用户”→“所有用户”,然后选择一个帐户。确定要删除的帐户后,将鼠标悬停在该帐户上,然后单击“删除”。
请注意,此选项仅在您是管理员时才会显示。只要没有其他人有权访问管理员帐户,您就应该是唯一能够删除用户帐户的人。
25. 监控用户活动
活动日志是监视特定事件并记录的工具。您可以访问该日志,这使您能够发现那些用户对网站安全性产生负面影响的事件和操作。
默认情况下,此功能在 WordPress 中不可用,但您可以使用插件添加它。
26. 使用 CDN 降低 DDoS 攻击的风险
内容分发网络 (CDN) 可以帮助您大幅缩短加载时间。他们通过使用分布在世界各地的数据中心网络缓存您的网站来做到这一点。当有人访问该站点时,CDN 会拦截请求并从最近的服务器加载副本。
除了减少加载时间之外,使用 CDN 还具有许多好处。例如您的网站将更好地处理流量高峰。此外,CDN 可以在发生攻击时充当屏障。
如果您的网站是 DDoS 攻击的目标,CDN 可以快速关闭它。如果网络检测到连接异常,许多 CDN 可能会要求访问者验证他们是否是人类。由于 DDoS 攻击依赖于机器人,因此它们通常无法绕过这些类型的安全检查。
即使 DDoS 攻击设法到达 CDN,其数据中心也是为了管理大量涌入的流量而构建的。同时,您的网站本身将受到 CDN 的保护。
您可以将任何您想要的 CDN 与 WordPress 集成。
27. 迁移到以安全为中心的托管服务提供商
每个虚拟主机都有自己的卖点。例如,一些托管服务提供商更注重安全性和性能,而另一些则优先考虑负担得起的价格。
理想情况下,您将选择一个承诺提供一流性能和安全性的网络主机。有很多网络主机符合这些标准并为您处理基本的安全任务。这些任务可能包括:
备份、设置 WAF、保护您免受 DDoS 攻击、恶意软件扫描和清理。