Back

如何保护 WordPress 网站安全

如何保护 WordPress 网站安全

WordPress 为全球超过 43% 的网站提供支持,这使其成为地球上最受攻击的 CMS。但大多数网站所有者都误解了一点:核心软件本身很少是问题所在。根据 Patchstack 的安全研究,WordPress 漏洞的绝大多数来自插件和主题——而非 WordPress 核心本身。这意味着你的安全态势几乎完全取决于你如何维护和配置网站。

本指南涵盖了真正重要的 WordPress 安全最佳实践,不包含过时的建议。

核心要点

  • 几乎所有 WordPress 漏洞都源于插件和主题,而非核心——定期审计和精简你的扩展组件。
  • 强身份验证(唯一密码、基于 TOTP 的双因素认证和通行密钥)是防止未授权访问的最有效防御手段。
  • 服务器级保护措施,如禁用文件编辑器、强制 HTTPS 和设置正确的文件权限,可以大幅缩小攻击面。
  • 可靠且经过测试的备份是你的最后一道防线——从未恢复过的备份是不可信的备份。

为什么大多数 WordPress 网站会被入侵

在开始修复之前,了解实际的攻击面会有所帮助。大多数成功的入侵利用了:

  • 过时或已废弃的插件和主题
  • 弱密码或重复使用的密码
  • 配置错误的文件权限
  • 缺乏服务器级保护的托管环境

WordPress 核心(目前为 6.x 版本系列)由专门的安全团队积极维护,使用 bcrypt 进行密码哈希,并自动推送次要安全更新。风险几乎总是存在于其周边生态系统中。

WordPress 加固指南:核心要点

保持所有组件更新——毫无例外

从漏洞披露到主动利用的时间窗口通常是几小时,而非几天。为次要核心版本启用自动后台更新。对于插件和主题,至少每周审查并应用更新。

更重要的是,审计你已安装的内容。每个未激活的插件都是一个攻击面。如果你不使用它,请删除它——而不仅仅是停用它。

在安装任何插件之前,请检查:

  • 最后更新日期(避免 12 个月以上未更新的插件)
  • 活跃安装数量
  • 是否在 WordPress.org 插件库中列出
  • 提及安全问题的开放支持主题

永远不要安装破解或盗版的主题和插件。它们经常包含后门。

对每个账户使用强身份验证

WordPress 核心不包含内置的双因素认证。你需要一个插件或外部身份提供商来添加它。

现代身份验证最佳实践:

  • 使用密码短语(四个或更多随机单词)或存储在密码管理器(如 Bitwarden1Password)中的随机生成密码
  • 为所有管理员账户启用基于 TOTP 的双因素认证(身份验证器应用)——基于短信的双因素认证总比没有好,但较弱
  • 在你的技术栈支持的情况下,考虑使用通行密钥/WebAuthn 实现防钓鱼登录
  • 对 REST API 和第三方集成使用 WordPress 应用程序密码,而不是主凭据

避免共享管理员账户。每个用户都应该拥有自己的登录账号,并具有所需的最低角色权限。

应用基本的服务器级保护

几个配置更改可以显著减少你的攻击面:

  • wp-config.php 中禁用文件编辑器,以防止管理员账户被入侵时执行代码:
    define( 'DISALLOW_FILE_EDIT', true );
  • 保护 wp-config.php,通过服务器配置限制访问,并确保它不可公开访问
  • 设置正确的文件权限:目录为 755,文件为 644
  • 使用 SFTP 或 SSH 而不是普通 FTP 传输文件
  • 强制 HTTPS — 每个 WordPress 网站都应该拥有有效的 TLS 证书,并将 HTTP 重定向到 HTTPS

添加 Web 应用防火墙和速率限制

WAF(Web 应用防火墙)在恶意流量到达 WordPress 之前进行过滤。你可以在三个层级实施:

  1. CDN/代理层级Cloudflare 等服务提供带有机器人管理的 WAF 和 DDoS 防护
  2. 服务器层级 — Apache 或 Nginx 上的 ModSecurity
  3. 插件层级WordfenceSucuri 等安全插件添加应用层防火墙规则和登录速率限制

限制登录尝试速率至关重要。针对 wp-login.php 的暴力攻击是持续且自动化的。

关于 XML-RPC 的说明: 不要在不了解依赖关系的情况下一刀切地禁用 XML-RPC。某些插件和移动应用依赖它。如果你不使用它,阻止它是合理的——但要在服务器层级进行,而不是使用脆弱的 .htaccess 规则。

可靠备份并测试恢复

从未测试过的备份不是真正的备份。使用 3-2-1 规则:三份副本,两种不同的存储介质,一份异地存储。自动化备份并定期验证恢复是否真正有效。

保护你的 WordPress 网站:快速参考清单

  • WordPress 核心、插件和主题都是最新的
  • 未使用的插件和主题已删除
  • 所有管理员账户使用强且唯一的密码
  • 为每个管理员用户启用了双因素认证
  • wp-config.php 中设置了 DISALLOW_FILE_EDIT
  • 文件权限设置正确(755/644)
  • 全站强制 HTTPS
  • WAF 和登录速率限制已激活
  • 自动备份定期运行且恢复已测试
  • 用户角色遵循最小权限原则

结论

保护 WordPress 网站的安全,与其说是关于奇特的加固技巧,不如说是关于持续的维护纪律。保持软件更新,使用适当的身份验证,应用服务器级保护,并定期备份。大多数攻击之所以成功,是因为跳过了这些基础措施之一——而不是因为 WordPress 本身的失败。

常见问题

不。WordPress 核心由专门的安全团队积极维护,并接收自动的次要安全更新。绝大多数漏洞来自第三方插件和主题,而非核心软件。保持扩展组件的审计和更新远比担心 WordPress 本身更重要。

是的。针对 wp-login.php 的暴力破解和凭据填充攻击是持续且自动化的。仅靠强密码是不够的,因为密码可能会泄露或被重复使用。通过身份验证器应用的基于 TOTP 的双因素认证增加了第二层防护,可以阻止大多数未授权登录尝试。

这取决于你的设置。XML-RPC 是一个传统 API,某些插件和 WordPress 移动应用仍在使用。如果你的网站上没有任何东西依赖它,禁用它可以减少攻击面。在服务器层级阻止它,而不是通过 htaccess 规则,后者更容易被绕过。

频率取决于你的内容更新频率。对于活跃网站,每日自动备份是一个合理的基准。比频率更重要的是定期测试恢复。遵循 3-2-1 规则:三份副本,两种不同的存储类型,一份异地存储。

Understand every bug

Uncover frustrations, understand bugs and fix slowdowns like never before with OpenReplay — the open-source session replay tool for developers. Self-host it in minutes, and have complete control over your customer data. Check our GitHub repo and join the thousands of developers in our community.

OpenReplay