如何保护 WordPress 网站安全
WordPress 为全球超过 43% 的网站提供支持,这使其成为地球上最受攻击的 CMS。但大多数网站所有者都误解了一点:核心软件本身很少是问题所在。根据 Patchstack 的安全研究,WordPress 漏洞的绝大多数来自插件和主题——而非 WordPress 核心本身。这意味着你的安全态势几乎完全取决于你如何维护和配置网站。
本指南涵盖了真正重要的 WordPress 安全最佳实践,不包含过时的建议。
核心要点
- 几乎所有 WordPress 漏洞都源于插件和主题,而非核心——定期审计和精简你的扩展组件。
- 强身份验证(唯一密码、基于 TOTP 的双因素认证和通行密钥)是防止未授权访问的最有效防御手段。
- 服务器级保护措施,如禁用文件编辑器、强制 HTTPS 和设置正确的文件权限,可以大幅缩小攻击面。
- 可靠且经过测试的备份是你的最后一道防线——从未恢复过的备份是不可信的备份。
为什么大多数 WordPress 网站会被入侵
在开始修复之前,了解实际的攻击面会有所帮助。大多数成功的入侵利用了:
- 过时或已废弃的插件和主题
- 弱密码或重复使用的密码
- 配置错误的文件权限
- 缺乏服务器级保护的托管环境
WordPress 核心(目前为 6.x 版本系列)由专门的安全团队积极维护,使用 bcrypt 进行密码哈希,并自动推送次要安全更新。风险几乎总是存在于其周边生态系统中。
WordPress 加固指南:核心要点
保持所有组件更新——毫无例外
从漏洞披露到主动利用的时间窗口通常是几小时,而非几天。为次要核心版本启用自动后台更新。对于插件和主题,至少每周审查并应用更新。
更重要的是,审计你已安装的内容。每个未激活的插件都是一个攻击面。如果你不使用它,请删除它——而不仅仅是停用它。
在安装任何插件之前,请检查:
- 最后更新日期(避免 12 个月以上未更新的插件)
- 活跃安装数量
- 是否在 WordPress.org 插件库中列出
- 提及安全问题的开放支持主题
永远不要安装破解或盗版的主题和插件。它们经常包含后门。
对每个账户使用强身份验证
WordPress 核心不包含内置的双因素认证。你需要一个插件或外部身份提供商来添加它。
现代身份验证最佳实践:
- 使用密码短语(四个或更多随机单词)或存储在密码管理器(如 Bitwarden 或 1Password)中的随机生成密码
- 为所有管理员账户启用基于 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
Discover how at OpenReplay.com.
添加 Web 应用防火墙和速率限制
WAF(Web 应用防火墙)在恶意流量到达 WordPress 之前进行过滤。你可以在三个层级实施:
- CDN/代理层级 — Cloudflare 等服务提供带有机器人管理的 WAF 和 DDoS 防护
- 服务器层级 — Apache 或 Nginx 上的 ModSecurity
- 插件层级 — Wordfence 或 Sucuri 等安全插件添加应用层防火墙规则和登录速率限制
限制登录尝试速率至关重要。针对 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.