独立站实战

WordPress 安全防护完整清单:20 项安全检查

你的 WordPress 网站每天可能被扫描上千次。不是危言耸听——任何一个没打补丁的插件、一个弱密码、一个没关掉的目录浏览,都可能让几个月的心血瞬间归零。

这一份清单,按优先级排列,逐项检查,做完以后基本能防住 90% 的攻击。

一、登录安全(5项)

登录入口是攻击者的首选目标。

  • [ ] 1. 禁用 admin 用户名
  • 为什么重要:暴力破解的第一步是猜用户名。admin 是默认用户名,攻击者第一个试。
  • 怎么配置:新建一个管理员账户(如 你的名字拼音),用新账户登录后删除 admin 用户。建账户时勾选”将现有内容归属给新用户”。

  • [ ] 2. 强制强密码策略

  • 为什么重要:弱密码 = 门没锁。123456passwordadmin123 这种几秒被破。
  • 怎么配置:安装 Wordfence 或 iThemes Security,启用”强制强密码”选项。复杂密码至少 12 位,含大小写+数字+特殊字符。

  • [ ] 3. 限制登录尝试次数

  • 为什么重要:不限制的话,攻击者可以无限撞库。
  • 怎么配置:Wordfence → 登录安全 → 设置登录失败上限为 3-5 次 → 锁定时间 30 分钟。

  • [ ] 4. 修改默认登录地址

  • 为什么重要:默认 /wp-admin/wp-login.php 是全世界都知道的入口。
  • 怎么配置:用 WPS Hide Login 插件,把登录地址改成只有你知道的路径,如 /my-login-2024。不要用 loginadmin 这类常见词。

  • [ ] 5. 启用双因素认证(2FA)

  • 为什么重要:密码泄露了还有第二道防线。
  • 怎么配置:安装 Wordfence(免费版自带 2FA)或 Two Factor Authentication 插件。用 Google Authenticator 扫码绑定。所有管理员账户必须开启。

二、文件安全(5项)

  • [ ] 6. 禁用文件编辑
  • 为什么重要:后台的”外观→主题文件编辑器”和”插件→插件文件编辑器”是安全隐患。攻击者拿到管理员权限后可以直接写入恶意代码。
  • 怎么配置:在 wp-config.php 中添加 define('DISALLOW_FILE_EDIT', true);

  • [ ] 7. 关闭目录浏览

  • 为什么重要:开启目录浏览等于把网站文件结构暴露给攻击者。
  • 怎么配置:在 .htaccess 顶部加一行 Options -Indexes。然后访问 yoursite.com/wp-content/uploads/ 确认返回 403。

  • [ ] 8. 保护 wp-config.php

  • 为什么重要:这是全站最重要的文件,存着数据库密码和密钥。
  • 怎么配置:在 .htaccess 中添加规则阻止外部访问 wp-config.php。同时把文件权限设成 400 或 440。

  • [ ] 9. 阻止 PHP 执行在 uploads 目录

  • 为什么重要:攻击者经常通过文件上传漏洞把 PHP 马传到 uploads 目录然后执行。
  • 怎么配置:在 wp-content/uploads/.htaccess 中添加:
    <Files *.php>
    deny from all
    </Files>

  • [ ] 10. 正确设置文件权限

  • 为什么重要:权限太松等于邀请攻击者改写你的文件。
  • 怎么配置:目录设为 755,文件设为 644,wp-config.php 设为 440。用 FileZilla 或命令行 chmod 批量修改。

三、数据库安全(5项)

  • [ ] 11. 修改数据库表前缀
  • 为什么重要:默认前缀 wp_ 是 SQL 注入攻击的已知目标。
  • 怎么配置:安装时就把前缀改成随机字符串,如 wp_mx8k_。如果已建站,用 Change Table Prefix 插件修改。

  • [ ] 12. 定期备份数据库

  • 为什么重要:被黑了至少有恢复手段。快照是最后的底牌。
  • 怎么配置:安装 UpdraftPlus,设置每天自动备份到 Google Drive 或 Dropbox,保留最近 7 天的备份。

  • [ ] 13. 限制数据库用户权限

  • 为什么重要:网站只用 CRUD(增删改查),不需要 DROP、ALTER 这类危险权限。
  • 怎么配置:在 phpMyAdmin 检查数据库用户权限,只保留 SELECT、INSERT、UPDATE、DELETE。去掉 CREATE、DROP、ALTER。

  • [ ] 14. 关闭数据库错误显示

  • 为什么重要:SQL 报错会泄漏数据库路径和结构。
  • 怎么配置:在 wp-config.php 中确保 define('WP_DEBUG_DISPLAY', false);,线上环境 define('WP_DEBUG', false);

  • [ ] 15. 使用安全的数据库密码

  • 为什么重要:数据库密码跟网站密码一样重要。
  • 怎么配置:在 cPanel → MySQL 数据库 → 生成 20 位以上随机密码,更新到 wp-config.php

四、服务器安全(5项)

  • [ ] 16. 安装 SSL 证书并强制 HTTPS
  • 为什么重要:HTTP 明文传输,中间人攻击可以偷走登录凭证和用户数据。
  • 怎么配置:用 Really Simple SSL 插件一键配置。或 Let’s Encrypt 免费证书。确保所有页面自动跳转 HTTPS。

  • [ ] 17. 保持核心/主题/插件更新

  • 为什么重要:绝大多数被黑案例都是因为没更新。漏洞公布到被利用通常只有 24-48 小时。
  • 怎么配置:开启 WordPress 自动更新小版本。大版本发布后 1-2 周内手动更新。每周至少登录后台检查一次更新提示。

  • [ ] 18. 安装安全防火墙(WAF)

  • 为什么重要:WAF 是网站门口的安检员,拦截 SQL 注入、XSS、文件包含等攻击。
  • 怎么配置:安装 Wordfence(免费版够用),开启防火墙学习模式运行一周,然后切换到”启用保护”模式。

  • [ ] 19. 定期扫描恶意代码

  • 为什么重要:有些后门潜伏很久才发作。
  • 怎么配置:Wordfence → 扫描 → 设置自动扫描每周一次。或使用 Sucuri SiteCheck 在线工具定期手动扫描。

  • [ ] 20. 删除未使用的主题和插件

  • 为什么重要:不用的插件/主题没人维护 = 潜在的漏洞入口。
  • 怎么配置:保留一个默认主题(如 Twenty Twenty-Four)作为备用,删除其他不用的。禁用并删除不用的插件。

执行建议

优先级 分类 预计耗时
紧急 1-5(登录安全)、17(更新) 1 小时
重要 11-15(数据库)、18(WAF) 1 小时
建议 6-10(文件安全)、16、19-20 1.5 小时

建议今天先把”紧急”项做完,剩下的一周内补上。每做完一项就打勾,养成交付前必查的习惯。

需要帮忙?私信我。