WordPress 安全加固:防被黑的 10 个设置细节

WordPress 安全防护示意图,盾牌保护 WordPress 标志,周围环绕防火墙和安全图标

WordPress 占全球网站的 43% 以上,也因此成了黑客最喜欢盯的目标——平均每 39 秒就有一个 WordPress 网站被攻击。但这里有个反直觉的事实:大多数 WordPress 被黑不是因为黑客技术有多高明,而是站长忘了做几个基础设置。

比如,73.2% 的 WordPress 站点仍然在用 “admin” 作为管理员用户名。这意味着黑客只需要破解密码,用户名已经知道了。再比如,WordPress 默认允许无限次登录尝试,这让暴力破解攻击变得轻而易举。

80% 的 WordPress 被黑可以通过 3 个基础设置避免:限制登录尝试、禁用 XML-RPC、改掉 admin 用户名。这篇文章按优先级把 10 个安全设置分成 3 档:必做的 3 个、推荐的 4 个、可选的 3 个。做完前 3 个,你的网站就比 90% 的小站安全了。

必做的 3 个设置:做完就比 90% 的站安全

这 3 个设置是 WordPress 安全的底线,不做的话就等于把门敞开让黑客进来。好消息是,它们都很容易实现,不需要懂代码。

1. 限制登录尝试

为什么重要

WordPress 默认允许无限次登录尝试。这意味着黑客可以用脚本不停地尝试密码,直到猜对为止。这种攻击叫"暴力破解",是最常见的 WordPress 攻击方式之一。

怎么做

安装插件 Limit Login Attempts Reloaded(250 万+活跃安装)。装好后,它会自动限制登录尝试次数(默认 3-5 次),失败后锁定 IP 一段时间(15-30 分钟)。

你也可以在插件设置里调整这些参数,但默认值对大多数小站来说已经够用了。

验证方法

登出 WordPress,然后故意输错密码 3 次。如果看到"登录尝试次数过多,请稍后再试"的提示,说明设置生效了。你还可以在插件的日志页面查看拦截记录。

2. 禁用 XML-RPC

为什么重要

XML-RPC 是 WordPress 的一个旧功能,用于远程发布文章。但它有两个严重的安全问题:

  • 允许批量请求,黑客可以在一次请求里尝试多个密码,绕过登录尝试限制
  • 可以被用于 DDoS 放大攻击(pingback 攻击),让你的网站变成攻击别人的跳板

除非你在用某些需要 XML-RPC 的老插件(比如 Jetpack 的某些功能),否则应该直接禁用它。

怎么做

最简单的方法是安装插件 Disable XML-RPC-API。装好后它会自动禁用 XML-RPC,不需要额外设置。

如果你不想装插件,也可以在 .htaccess 文件里添加规则阻止访问 xmlrpc.php,或者用安全插件(Wordfence/Sucuri)的 XML-RPC 禁用功能。

验证方法

在浏览器里访问 你的域名/xmlrpc.php。如果返回 403(禁止访问)或 404(找不到),说明设置生效了。如果看到一段 XML 代码,说明 XML-RPC 还开着,需要重新检查设置。

3. 修改默认 admin 用户名

为什么重要

73.2% 的 WordPress 站点仍然在用 “admin” 作为管理员用户名。这意味着黑客只需要破解密码,用户名已经知道了。这让暴力破解攻击的成功率大幅提高。

怎么做

WordPress 不允许直接修改用户名,所以你需要创建一个新的管理员账户,然后删掉原来的 admin 账户。步骤如下:

  1. 登录 WordPress 后台,进入"用户" → “添加用户”
  2. 创建一个新用户,用户名不要用网站名称、公司名称或常见词(比如 webmaster),最好是随机字符串
  3. 角色选择"管理员"
  4. 登出,用新账户登录
  5. 删除原来的 admin 账户(WordPress 会提示你把 admin 的文章转移给新账户)

验证方法

登录后台,进入"用户"列表,确认没有 admin 用户。你还可以用工具(比如 WPScan)扫描网站,确认用户名不可被枚举。

WordPress 登录安全设置界面,显示登录尝试限制和 IP 锁定配置

推荐的 4 个设置:进一步加固

做完上面 3 个设置,你的网站已经比大多数小站安全了。下面这 4 个设置是锦上添花,可以进一步降低风险。如果你有时间,建议都做一遍。

4. 启用双因素认证(2FA)

为什么重要

即使你的密码很强,也有可能被钓鱼网站骗走,或者在数据泄露中被泄露。双因素认证要求登录时除了密码,还要输入一个动态验证码(通常是手机 App 生成的 6 位数字)。这样即使密码泄露,黑客也无法登录。

数据显示,2FA 可以减少 99.9% 的未授权访问风险。

怎么做

安装插件 WP 2FA 或 Wordfence(Wordfence 内置了 2FA 功能)。装好后,插件会引导你用手机 App(Google Authenticator 或 Authy)扫描二维码,绑定账户。

如果你的网站有多个管理员,至少要为管理员账户启用 2FA。普通用户可以不开。

验证方法

登出后重新登录,检查是否要求输入验证码。尝试只用密码登录,应该被拒绝。

5. 设置正确的文件权限

为什么重要

文件权限控制谁可以读、写、执行你的网站文件。如果权限设置不当(比如设成 777,任何人都可以读写执行),黑客可以直接修改你的文件,植入后门。

怎么做

标准的文件权限设置是:

  • 目录:755(所有者可读写执行,其他人只读执行)
  • 文件:644(所有者可读写,其他人只读)
  • wp-config.php:400 或 440(只读,仅所有者可访问)

如果你会用 SSH,可以用命令批量修改:

find /path/to/wordpress -type d -exec chmod 755 {} \;
find /path/to/wordpress -type f -exec chmod 644 {} \;
chmod 400 wp-config.php

如果你只会用 FTP,可以在 FTP 客户端(比如 FileZilla)里右键点击文件/文件夹,选择"文件权限",手动修改。

验证方法

用 FTP 客户端查看文件权限,或者用安全插件(Wordfence)扫描权限设置。确认没有文件或目录的权限是 777。

6. 修改数据库表前缀

为什么重要

WordPress 默认的数据库表前缀是 wp_(比如 wp_userswp_posts)。黑客在进行 SQL 注入攻击时,会假设你用的是默认前缀。修改为随机前缀(比如 wp_a8x3_)可以阻止自动化攻击。

不过需要说明的是,这个设置的实际安全收益存在争议。它主要防御自动化攻击,对针对性攻击效果有限。如果你是新站,可以在安装时就设置自定义前缀;如果是老站,可以跳过这一步。

怎么做

如果是新站,在安装 WordPress 时,编辑 wp-config.php 文件,把 $table_prefix = 'wp_'; 改成 $table_prefix = 'wp_a8x3_';(随机字符串)。

如果是已经运行的老站,可以用插件(比如 iThemes Security)自动修改,或者手动修改数据库表名和 wp-config.php(需要备份数据库,操作有风险)。

验证方法

打开 wp-config.php 文件,检查 $table_prefix 的值。或者登录数据库(phpMyAdmin),查看表名前缀。

7. 禁用文件编辑功能

为什么重要

WordPress 后台默认允许编辑主题和插件文件(在"外观" → “编辑器"和"插件” → “编辑器”)。如果你的账户被入侵,黑客可以直接在后台修改代码,植入后门。

禁用这个功能后,即使账户被入侵,黑客也无法通过后台修改文件。

怎么做

编辑 wp-config.php 文件,在 /* That's all, stop editing! Happy publishing. */ 这行之前添加:

define('DISALLOW_FILE_EDIT', true);

保存文件,上传到服务器。

验证方法

登录 WordPress 后台,检查"外观"和"插件"菜单下是否还有"编辑器"选项。如果看不到,说明设置生效了。

WordPress 文件权限设置示意图,展示目录和文件的安全权限配置

可选的 3 个设置:锦上添花

下面这 3 个设置不是必须的,但如果你想进一步提升安全性,可以考虑。

8. 安装安全插件

要不要装

安全插件可以提供防火墙、恶意软件扫描、登录保护等功能。但它们也会占用服务器资源,而且插件本身也可能有漏洞。

我的建议是:小站选一个就够了,不要同时装多个安全插件(会冲突)。如果你已经做完了前面 7 个设置,安全插件是锦上添花,不是必须。

怎么选

主流的安全插件有 3 个:

  • Wordfence:全面的防火墙和恶意软件扫描,免费版功能强大。缺点是占用服务器资源较多。价格:免费版可用,高级版 $119/年。
  • Sucuri:基于云的防火墙,对服务器性能影响小。缺点是免费版功能有限,核心功能需付费。价格:高级版从 $199/年起。
  • Solid Security(原 iThemes Security):适合初学者,界面友好。缺点是功能不如 Wordfence 全面。价格:免费版可用,高级版 $99/年。

如果你不确定选哪个,优先选择 Wordfence 免费版。如果你的服务器性能有限(比如共享主机),考虑 Sucuri。

9. 强制使用 HTTPS

为什么重要

HTTPS 加密传输数据,防止中间人攻击。如果你的网站还在用 HTTP,登录凭证和用户数据都是明文传输的,很容易被窃取。

另外,Google 将 HTTPS 作为排名因素,用 HTTPS 的网站在搜索结果中会有优势。

怎么做

  1. 从主机商或 Let’s Encrypt 获取免费 SSL 证书(大多数主机商都提供一键安装)
  2. 在 WordPress 后台"设置" → "常规"中,把"WordPress 地址"和"站点地址"改为 https://
  3. 安装插件 Really Simple SSL,自动处理 HTTP 到 HTTPS 的重定向

验证方法

访问你的网站,检查浏览器地址栏是否显示锁图标。尝试访问 http:// 版本,应该自动跳转到 https://

10. 定期备份

为什么重要

即使做了所有安全设置,也无法保证 100% 不被黑。定期备份是最后一道防线——如果网站真的被黑了,你可以快速恢复。

怎么做

  • 频率:至少每周一次,活跃站点建议每天
  • 内容:数据库 + 文件(wp-content 目录)
  • 存储:异地存储(不要只放在同一服务器),比如 Google Drive、Dropbox

推荐插件:

  • UpdraftPlus:免费,支持云存储(Google Drive、Dropbox 等)
  • BackWPup:免费,功能全面
  • 主机商自带备份(如果有)

验证方法

定期测试恢复流程,确保备份可用。检查备份文件大小是否合理(太小可能是备份失败了)。

安全自检清单:10 项逐一确认

做完上面的设置,用这个清单检查一遍:

必做(做完就比 90% 的站安全)

  • [ ] 限制登录尝试(故意输错密码 3 次,检查是否被锁定)
  • [ ] 禁用 XML-RPC(访问 /xmlrpc.php,应该返回 403 或 404)
  • [ ] 修改 admin 用户名(后台"用户"列表里没有 admin)

推荐(进一步加固)

  • [ ] 启用 2FA(登录时要求输入验证码)
  • [ ] 设置文件权限(目录 755,文件 644,wp-config.php 400)
  • [ ] 修改数据库表前缀(wp-config.php 里不是 wp_
  • [ ] 禁用文件编辑(后台看不到"编辑器"菜单)

可选(锦上添花)

  • [ ] 安装安全插件(Wordfence 免费版够用)
  • [ ] 强制 HTTPS(浏览器地址栏显示锁图标)
  • [ ] 定期备份(每周至少一次,异地存储)

做完前 3 个,你的网站就比 90% 的小站安全了。剩下的 7 个可以按优先级逐步加固,不用一次性做完。