WordPress 是全球市占率最高的 CMS,也因此成为黑客自动化扫描攻击的首要目标。大多数 WordPress 网站被入侵并非因为存在罕见漏洞,而是由于使用默认配置、弱密码、过期插件等可预防的问题。本文从多个维度系统性地加固 WordPress 安全,适合所有独立部署 VPS 的 WordPress 站长参考执行。
本文要点
- 后台 URL 混淆与访问限制
- 暴力破解防护:限制登录失败次数
- WordPress 文件权限最佳实践
- 禁用 XML-RPC 防止接口滥用
- 隐藏 WordPress 版本信息
- 定期备份策略
账号与密码安全
账号安全是第一道防线,以下几点是最基本的要求:
- 删除默认
admin用户,使用自定义用户名 - 管理员密码长度不低于 16 位,包含大小写字母、数字和特殊符号
- 为管理员账号绑定邮箱,开启 WordPress 邮件通知(新用户注册、密码重置)
- 若网站只有你一人使用,将"任何人都可以注册"选项关闭
限制登录失败次数
暴力破解攻击通过大量尝试账号密码组合来入侵后台。安装 Limit Login Attempts Reloaded 插件可以在多次登录失败后自动封锁 IP:
- 在插件市场搜索"Limit Login Attempts Reloaded"并安装激活
- 进入 设置 → Limit Login Attempts
- 配置允许的登录失败次数(建议 3–5 次)
- 配置锁定时长(首次锁定 20 分钟,多次触发后延长至 24 小时)
- 开启邮件通知,在管理员邮箱接收封锁提醒
修改后台登录 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.php | 600 或 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 文件。