WordPress 安全加固 12 条:小站也能落地的清单

· wordpress · 阅读 5
摘要

先说结论:被扫的 WordPress 站里,绝大多数栽在四个基础项上——弱密码、默认表前缀、插件不更新、文件可编辑。这 12 条不需要你懂代码,按顺序做一遍大约 30 分钟,能挡掉九成自动化攻击。 一、账号与会话(4 条) 1. 不要用 a

先说结论:被扫的 WordPress 站里,绝大多数栽在四个基础项上——弱密码、默认表前缀、插件不更新、文件可编辑。这 12 条不需要你懂代码,按顺序做一遍大约 30 分钟,能挡掉九成自动化攻击。

一、账号与会话(4 条)

1. 不要用 admin 作用户名

攻击者的爆破字典第一个试的就是 admin。如果已经用了,新建一个管理员账号,登录后把 admin 降级或删除(WordPress 不让删同名当前用户,需先切换)。

2. 强制强密码 + 限制登录次数

后台「用户 → 个人资料」里改密码,长度 16 位以上。再用插件限制 /wp-login.php 的尝试频率,比如 5 次/5 分钟。这一步能挡掉 80% 的暴力破解。

3. 开启两步验证

管理员账号必须开。即使密码泄露,攻击者也进不来。

4. 定期清理不用的账号

尤其要检查用户的权限等级,很多站被入侵是因为早期留了一个「编辑」账号没管。

二、文件与配置(4 条)

5. 改表前缀(安装时改)

默认 wp_ 让 SQL 注入更容易得手。新站安装时就把前缀改成随机的,比如 kx7_。已经上线的站改起来风险较大,需同步改 wp-config 和数据库表名。

6. 关闭后台文件编辑器

在 wp-config.php 加入:

define('DISALLOW_FILE_EDIT', true);

这样即使后台被进,攻击者也不能直接改主题文件植入后门。

7. 禁止目录列出与敏感文件访问

Nginx 加一段:

location ~ /\.(htaccess|git|env) { deny all; }
location ~* \/(readme\.html|license\.txt) { deny all; }
autoindex off;

WordPress 版本号泄露是扫描器挑目标的第一步,顺手把 readme.html 删掉。

8. 设置正确的文件权限

  • 目录 755,文件 644。
  • wp-config.php 设为 600(或 640)。
  • 绝对不要图省事设成 777,等于把门敞开。

三、更新与备份(2 条)

9. 核心、主题、插件保持更新——但要有顺序

正确顺序是:先备份 → 再更新插件 → 再更新主题 → 最后更新核心。不要在周五下午更新生产站,出了问题没人处理。

例外:已停止维护的插件不要一直留着,能换就换,换不了就评估功能能否用代码替代。

10. 自动备份,且验证能恢复

  • 数据库每天一次,整站每周一次。
  • 备份存到站外(对象存储 / 另一台机器),不要只放在同一台服务器上。
  • 最关键:每季度真去做一次恢复演练,很多人备份了三年,出事发现备份文件是空的。

四、运行环境(2 条)

11. 用 HTTPS,并强制跳转

不是为了 SEO,而是防止后台密码在明文 HTTP 里被截。面板申请证书后,Nginx 里加 301 跳转,同时把站点地址改成 https。

12. 关闭调试模式,生产环境不显示错误

WP_DEBUG 必须为 false。错误信息会暴露服务器绝对路径和插件版本,是攻击者最爱的情报来源。

加分项:给自己装一双眼睛

  • 装一个安全插件做基础监控(文件变动、登录记录)。
  • 定期看服务器日志里 /wp-login.php 的访问频率,异常暴增说明正在被爆破。
  • 在搜索里查 site:你的域名,出现不认识的页面(博彩、药品)说明已被挂马。

一张自查表

风险项状态
用户名非 admin□
强密码 + 登录限次□
管理员开两步验证□
表前缀非 wp_□
DISALLOW_FILE_EDIT 已开□
权限 755/644□
插件主题已更新□
站外备份已验证□
HTTPS 强制跳转□
WP_DEBUG 已关□

这份清单的意义不在于「全做完就绝对安全」,而在于让攻击成本高于收益——扫描器会优先挑软柿子,你只要不是最软的那个就够了。