WordPress 是全球市占率最高的 CMS,也因此成为黑客自动化扫描攻击的首要目标。大多数 WordPress 网站被入侵并非因为存在罕见漏洞,而是由于使用默认配置、弱密码、过期插件等可预防的问题。本文从多个维度系统性地加固 WordPress 安全,适合所有独立部署 VPS 的 WordPress 站长参考执行。

本文要点

  • 后台 URL 混淆与访问限制
  • 暴力破解防护:限制登录失败次数
  • WordPress 文件权限最佳实践
  • 禁用 XML-RPC 防止接口滥用
  • 隐藏 WordPress 版本信息
  • 定期备份策略

账号与密码安全

账号安全是第一道防线,以下几点是最基本的要求:

  • 删除默认 admin 用户,使用自定义用户名
  • 管理员密码长度不低于 16 位,包含大小写字母、数字和特殊符号
  • 为管理员账号绑定邮箱,开启 WordPress 邮件通知(新用户注册、密码重置)
  • 若网站只有你一人使用,将"任何人都可以注册"选项关闭

限制登录失败次数

暴力破解攻击通过大量尝试账号密码组合来入侵后台。安装 Limit Login Attempts Reloaded 插件可以在多次登录失败后自动封锁 IP:

  1. 在插件市场搜索"Limit Login Attempts Reloaded"并安装激活
  2. 进入 设置 → Limit Login Attempts
  3. 配置允许的登录失败次数(建议 3–5 次)
  4. 配置锁定时长(首次锁定 20 分钟,多次触发后延长至 24 小时)
  5. 开启邮件通知,在管理员邮箱接收封锁提醒

修改后台登录 URL

WordPress 默认登录页为 /wp-login.php,是攻击者最先尝试的路径。安装 WPS Hide Login 插件可将登录 URL 修改为自定义路径(如 /site-manage-2024),配合限制登录次数,能阻断绝大多数自动化扫描。

文件权限最佳实践

错误的文件权限是 WordPress 被植入恶意代码的常见途径。推荐权限设置如下:

目录/文件推荐权限说明
WordPress 根目录755允许 Web 服务器读取
wp-admin/755后台目录
wp-content/755主题/插件/上传目录
wp-content/uploads/755上传文件目录
所有 .php 文件644禁止执行写入
wp-config.php600 或 640最敏感文件,仅所有者可读写

批量修正权限的命令:

find /var/www/wordpress -type d -exec chmod 755 {} \;
find /var/www/wordpress -type f -exec chmod 644 {} \;
chmod 600 /var/www/wordpress/wp-config.php

禁用 XML-RPC

XML-RPC 是 WordPress 的远程调用接口,常被用于放大暴力破解(一次请求可尝试数百个密码)和流量反射攻击。如无需使用(Jetpack、移动端 App 发布需要),建议完全禁用:

Nginx 层禁用(推荐)

# 在 Nginx 的 WordPress server 块中添加
location = /xmlrpc.php {
    deny all;
    return 444;
}

通过插件禁用

安装 Disable XML-RPC 插件,激活即可,无需配置。

隐藏 WordPress 版本信息

WordPress 在 HTML 头部默认暴露版本号,攻击者可据此针对已知漏洞发起攻击。在主题 functions.php 中添加:

// 隐藏版本号
remove_action('wp_head', 'wp_generator');

// 移除 RSS feed 中的版本号
function remove_rss_version() { return ''; }
add_filter('the_generator', 'remove_rss_version');

保护敏感文件

在 Nginx 配置中明确禁止直接访问敏感文件:

location ~* wp-config\.php { deny all; }
location ~ /\.ht { deny all; }

请勿将 wp-config.php 暴露在 Web 可访问目录

wp-config.php 包含数据库账号密码和密钥,一旦泄露等同于交出数据库控制权。确保其权限为 600,且 Nginx 配置了禁止直接访问。

安全插件推荐

插件名称主要功能免费版是否可用
Wordfence Security防火墙、恶意软件扫描、登录保护是(部分功能需付费)
iThemes Security综合安全加固、文件变更检测
All In One WP Security全面安全设置向导,适合新手

定期备份策略

安全加固并不能保证 100% 不被攻击,定期备份是最后的保底手段。推荐使用 UpdraftPlus 插件,支持备份到谷歌网盘、亚马逊 S3、FTP 等远程存储:

  • 每日备份数据库,每周备份文件
  • 保留最近 4–8 份备份副本
  • 备份文件存储到远程位置(非本机),避免服务器被黑后备份一并损失

小结

  • 账号安全是基础:删除 admin 用户,使用强密码
  • 修改登录 URL + 限制失败次数,可阻断 95% 的自动化暴力破解
  • 文件权限正确配置是防止代码注入的关键
  • 禁用 XML-RPC 消除一类高危攻击面
  • 备份是最后防线,务必存储到远程位置

常见问题

WordPress 网站被黑了怎么办?

立即下线或进入维护模式,用 Wordfence 等插件扫描并清除恶意文件,从干净备份还原数据库,修改所有账号密码,排查插件/主题是否有漏洞版本。

需要同时安装 Wordfence 和 iThemes Security 吗?

不需要,安装一个综合安全插件即可。多个安全插件叠加可能产生冲突,且会消耗更多服务器资源。

禁用 XML-RPC 会影响 Jetpack 等插件吗?

会影响依赖 XML-RPC 的功能(如 Jetpack 部分功能、WordPress 移动 App 发布)。如需使用这些功能,可改用 IP 白名单方式仅允许特定 IP 访问 xmlrpc.php。

如何检测我的 WordPress 是否已被植入恶意代码?

使用 Wordfence 或 MalCare 进行全站扫描;也可在服务器终端运行 find /var/www/wordpress -name "*.php" -newer wp-config.php,查看是否有近期被修改的可疑 PHP 文件。