WordPress 网站安全设置清单:12 步堵住黑客入口

本站部分链接为联盟推广链接。通过这些链接购买,我可能获得佣金...

这不仅不会增加您的实际费用,通常还能让您享受到专属折扣。所有上榜推荐均基于真实项目环境下的自费实测,排名完全由客观测评数据决定。详细规则请查阅《免责声明》。

前阵子帮一个做外贸的朋友看站,他很委屈:主题是正版的,插件也是正版的,怎么首页还是被挂了赌博弹窗?

我翻了一下日志,答案很朴素。后台地址是默认的,管理员账号叫 admin,密码有一年多没换过。人家根本没用什么高深漏洞,一个脚本对着登录页撞了几天就进来了。

这其实是大部分 WordPress 被黑的真相:不是被高手盯上,而是被批量扫描的脚本顺手捡走。 脚本不在乎你是谁,它只找没锁门的。所以安全加固的目标也不是「绝对安全」,而是让你的站比旁边那些站难撬一点,脚本试几次不行就换下一家了。

下面这 12 项,我按黑客实际的进门路线分成 4 层:登录入口、过期代码、文件权限、服务器。越靠前越容易被利用,也越容易修。

先弄清楚:黑客一般从哪几扇门进来?

我把这几年见过的被黑案例粗略归了一下类,基本逃不出三条路:

  • 登录页被撞开。 弱密码,或者用户名就叫 admin。
  • 插件或主题有已知漏洞。 站长没更新,漏洞细节早就公开了,脚本照着打就行。
  • 服务器层面没管好。 面板默认端口裸奔,上传目录能执行 PHP,后门一放就生根。

你会发现,这三条里没有一条需要什么「黑客技术」。大多是站长自己没关门。

wordpress login brute force access log

第一层:把登录入口锁死(第 1–5 项)

1. 管理员用户名别叫 admin

脚本撞库时,用户名基本都从 admin、administrator、站点名这几个猜起。你的用户名如果正好在里面,等于密码题已经替对方答了一半。

WordPress 的用户名创建后不能直接改。最省事的办法是这样:

  1. 新建一个管理员账号,用户名起得没规律一点。
  2. 用新账号登录。
  3. 删掉旧的 admin 账号。删除时 WordPress 会问你内容归谁,一定要选「把所有内容转给」新账号,不然文章会跟着一起删掉。

另外,个人资料里的「公开显示为」也别选用户名,改成昵称。不然你的登录名会直接挂在文章作者那一栏。

2. 密码交给密码管理器,别靠脑子记

这条人人都知道,但我见过太多站长的密码是「公司名+年份」。

其实 WordPress 新建用户时自动生成的那串乱码就很好用,问题只是记不住。所以直接装个密码管理器,Bitwarden、1Password 都行,让它记就好了。

顺带把主机后台、宝塔面板、数据库、FTP 的密码也一起换掉。这几个哪个被撞开,比 WordPress 后台还麻烦。

3. 给管理员开双重验证(2FA)

前两项能挡住撞库,但挡不住密码泄露。比如你在别的网站用过同一个密码,那个网站被拖库了,你的密码就在别人手里了。

2FA 的意义在于:就算密码丢了,没有你手机上那个 6 位动态码,照样进不来。

如果不想装大而全的安全插件,我推荐 WordPress 官方团队维护的 Two Factor 插件。我核对了官方页面:

  • 当前版本 0.17.0,10 万+ 活跃安装,测试兼容到 WordPress 7.1.3。
  • 要求 WordPress 7.0 及以上、PHP 7.4 及以上。
wp Two Factor

装好后,每个用户要自己去「用户 → 个人资料」,往下找到 Two-Factor Options 去开启。支持三种方式:

  • 认证器 App(TOTP),比如 Google Authenticator,推荐用这个。
  • 邮箱验证码。
  • 备用码。
WordPress Two Factor 插件在个人资料页的双重验证设置


有两点我得说在前面。

一是备用码一定要生成,并且存进密码管理器。手机丢了又没备用码的话,就只能去数据库里手动解除了。

二是这个插件没有「强制某个角色必须开 2FA」的开关。官方 FAQ 也承认这一点,是开发者在跟进的需求。如果你的站有好几个管理员,得自己盯着每个人都开了。需要强制开启的话,可以用 Wordfence 自带的 2FA,后面会讲到。

其他方法可参考教程:WordPress 双重身份验证 WP 2FA 插件安装与配置教程

4. 限制登录尝试次数

WordPress 默认允许无限次输错密码。这是脚本最喜欢的特性:一秒试几十次,一直试到你换密码为止。

装个限制插件,输错几次就把这个 IP 关小黑屋。具体参数怎么设、用了 Cloudflare 后为什么必须改 IP 来源、自己被锁了怎么救,站内这篇讲得很细:Limit Login Attempts 防暴力破解配置教程,这里就不重复了。

如果你后面打算装 Wordfence,就不用再装这个了。Wordfence 自带登录次数限制,两个一起开是重复的。

5. 关掉或限制 XML-RPC

xmlrpc.php 是 WordPress 给手机 App 和老式客户端留的远程接口。问题在于,它有个 system.multicall 方法,一个请求里能塞几十组密码。很多限制登录次数的插件是按请求计数的,这么一来就被绕过去了。

先确认你用不用它:

  • 用 WordPress 手机 App 发文章,可能会用到。
  • 部分插件(比如 Jetpack)会用到。

都不用的话,直接关。有两种关法,效果不一样。

轻量关法:在子主题 functions.php 或 Code Snippets 插件里加一行:

这个过滤器只禁用「需要登录」的那些方法,pingback 之类的还在。挡撞库是够了,但 xmlrpc.php 本身仍然能被访问。

彻底关法:在 Nginx 层直接拒绝访问。宝塔用户进「网站 → 设置 → 配置文件」,在 server { } 里加:

保存后访问 你的域名/xmlrpc.php,看到 403 就说明生效了。

装了 Two Factor 插件的话,它从 0.14 版开始,默认就不允许用普通密码通过 XML-RPC 和 REST API 登录,只认应用密码(Application Passwords)。等于顺手又补了一层。

第二层:别让过期代码变成后门(第 6–7 项)

6. 开启自动更新,至少插件要开

很多人不敢开自动更新,怕更新完网站白屏。这个顾虑我理解,但算笔账:

  • 更新导致白屏,回滚一下就好了,几分钟的事。
  • 漏洞被利用、站被挂马,清理加恢复可能要好几天,还可能被 Google 标记成危险网站。

WordPress 核心的小版本(安全修复)默认就会自动更新。插件和主题要你自己去开:

  • 插件:进「插件 → 已安装的插件」,每个插件右边有「启用自动更新」,点一下即可。
  • 主题:在「外观 → 主题」里点开主题详情开启。
wordpress plugins enable auto updates

7. 删掉不用的插件和主题,盗版的一个都别碰

停用不等于安全。 停用的插件文件还躺在服务器上,里面有漏洞的话照样能被直接访问利用。不用的就删掉,只留一个当前主题,外加一个官方默认主题备用。

盗版主题和插件就更不用说了。网上那些「免费破解版 Pro」,相当一部分夹带后门。WP-VCD 就是很出名的一类恶意代码,专门藏在盗版主题里传播。省下几十美元,换来的可能是整个站被人遥控。

还有一种容易被忽视的情况:插件作者不维护了。 去 WordPress.org 看一眼插件页面的「最后更新」时间,一两年没动过的,要考虑找替代品。Wordfence 的扫描器会专门提醒你哪些插件已经被下架或废弃,这个功能挺实用的。

第三层:文件和权限,给后门断粮(第 8–10 项)

8. 禁用后台的文件编辑器

WordPress 后台有个「外观 → 主题文件编辑器」和「插件 → 插件文件编辑器」,能直接改 PHP 代码。对你来说是个方便功能,对拿到后台权限的黑客来说,就是现成的植入后门工具。

在网站根目录的 wp-config.php 里,找到 require_once ABSPATH . 'wp-settings.php'; 这一行,在它上面加:

保存后刷新后台,那两个编辑器菜单就消失了。以后要改代码,走宝塔文件管理或 SFTP,反正改代码本来也不该在线上后台直接动。

wp config disallow file edit

9. 上传目录禁止执行 PHP

/wp-content/uploads/ 是放图片和 PDF 的地方,正常情况下这里不应该有任何 PHP 文件被执行。可很多后门恰恰就是伪装成上传文件扔进这里,然后通过浏览器访问来触发。

参考文章给的是 Apache 的 .htaccess 写法。但国内用宝塔的朋友大多跑 Nginx,.htaccess 根本不生效。Nginx 要这样写:

放的位置很关键。 Nginx 的正则 location 是按出现顺序匹配的。宝塔的站点配置里有一行 include enable-php-xx.conf;(xx 是 PHP 版本号),负责把 .php 交给 PHP 处理。上面这段规则必须放在这一行之前,否则请求会先被 PHP 规则接走,你的 deny 就成了摆设。

验证方法:在 uploads 目录里随手建一个 test.php,浏览器访问它。返回 403 就说明生效了。测完记得删掉这个文件。

如果你在日志里还看到各种乱七八糟的扫描请求,比如 .env、wp-config.php.bak 这类路径,可以接着看这篇:恶意扫描的 Nginx 拦截规则和 4 种防护方案。规则可以直接复制用。

10. 账号按最小权限分配

请了写手发文章,给他开个管理员?千万别。管理员能装插件,能装插件就等于能往服务器上传代码。

原则就一句:给刚好够用的权限,一点都不多给。

  • 写手给「作者」或「投稿者」。
  • 内容负责人给「编辑」。
  • 管理员只留你自己。

5 种角色具体能干什么,可以看这篇 WordPress 用户角色和权限分配详解。

找外包修网站、要临时进后台的情况,也别把你的管理员密码发过去。用临时免密登录链接插件生成一个限时账号,到期自动失效。活干完了,你连改密码都省了。

第四层:服务器和面板,别让地基漏风(第 11 项)

11. 全站 HTTPS,加固好面板

HTTPS 现在是标配。没有它,你在咖啡馆连公共 WiFi 登后台,密码就是明文在网上跑。宝塔里申请 Let’s Encrypt 免费证书,点几下就有。至于免费证书够不够用、什么情况下才值得买付费的,看 免费 SSL 和付费证书的区别。外贸展示站基本免费的就够了。

面板本身也常常被忽略。宝塔、aaPanel 的后台权限比 WordPress 后台还大,进了面板等于拿到整台服务器。几个要点:

  • 改掉默认登录入口和端口。
  • 开启面板的双重验证。
  • 别在面板里装一堆用不上的软件。
bt panel security entry 2fa

如果你用的是共享主机,服务器层你基本碰不到,安全全看主机商。邻居网站被黑会不会殃及你、有没有自动备份和隔离,这些在买主机时就得问清楚。不想自己折腾服务器安全的话,翻翻 WordPress 主机推荐汇总,挑家自带防护和备份的托管主机,能省不少心。

要不要装安全插件?装一个就够

前面 11 项大多不用安全插件也能做。但如果你想要文件扫描、防火墙、登录保护打包在一起,Wordfence 依然是我最常推荐的。我核对了它在 WordPress.org 的最新信息:

  • 当前版本 9.0.2,500 万+ 活跃安装,测试兼容到 7.1.3。
  • 免费版包含:Web 应用防火墙、恶意软件扫描、登录次数限制、TOTP 双重验证、登录验证码。
  • 从 9.0 版开始,免费版也支持 Passkey 通行密钥登录了。
Wordfence-Security

免费版和付费版最关键的差别只有一条:防火墙规则和恶意软件特征库,免费版要延迟 30 天才能收到。付费版是实时推送。

对一般外贸展示站来说,延迟 30 天的规则配合第 6 项的自动更新,其实也够了。站点有交易、客户数据比较敏感的,再考虑付费版。

别同时装两三个安全插件。 它们的防火墙和登录拦截会互相打架,还拖慢网站。这一条参考文章评论区也有人问过,答案一样:选一个,配好它。

第 12 项:异地备份,这是你翻盘的底牌

前面 11 项都是「降低被黑概率」,备份是「被黑了也能活」。

开头那位朋友,最后是我帮他把服务器推倒重来的。为什么不直接删木马?因为黑客往往会在图片目录、主题深处留好几个后门,你删了表面那个,过两天弹窗又回来了。最稳的办法是用干净的备份重建。可他偏偏没备份,只能从更早的旧文件一点点捡。完整过程我写在这篇里了:全套正版依然被黑的外贸站重构案例。

备份我建议记住三个要点:

  • 自动。 靠手动的备份,迟早会忘。宝塔的「计划任务」能定时备份网站文件和数据库。
  • 异地。 备份文件不能只放在同一台服务器上,服务器被黑或硬盘坏了,备份会一起没。至少同步一份到云存储或本地电脑。
  • 能恢复。 隔几个月真的拿备份恢复一次试试。我见过备份了一年、结果压缩包是坏的。

频率按更新量定:天天发文章的站每天备份,几个月才改一次的展示站,每周一次也行。

12 项清单汇总:按优先级排好了

照着表从上往下做。前 6 项花半小时,能挡住绝大部分脚本攻击。

优先级项目大概耗时怎么验证做到了
1管理员不叫 admin5 分钟用户列表里没有 admin
2强密码 + 密码管理器10 分钟所有后台密码都是随机生成的
3管理员开 2FA,存好备用码5 分钟退出重登时要求输入动态码
4限制登录次数5 分钟故意输错几次,被锁定
5关闭或限制 XML-RPC5 分钟访问 /xmlrpc.php 返回 403
6开启插件自动更新3 分钟插件列表显示「禁用自动更新」
7删掉闲置和盗版插件主题10 分钟只剩在用的插件和 1–2 个主题
8禁用后台文件编辑器3 分钟后台找不到「文件编辑器」菜单
9uploads 禁止执行 PHP10 分钟测试 php 文件返回 403
10账号最小权限10 分钟管理员只有你自己
11HTTPS + 面板加固20 分钟浏览器显示小锁,面板入口已改
12自动异地备份20 分钟云端能看到最新的备份文件

参考文章里的「登录安全问题」和「闲置自动登出」,我没放进清单。

  • 安全问题的作用已经被 2FA 完全替代,而且体验更好。
  • 自动登出主要防的是「电脑没锁屏被人动」,个人站长用处不大。多人共用电脑的团队可以自己加。

做完这 12 项,也不代表一劳永逸。每个月抽 10 分钟看看三件事:Wordfence 扫描报告、插件更新情况、备份是不是还在正常跑。安全这件事,靠的是持续的小习惯,而不是一次性的大动作。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注


快捷菜单
WordPress 主机
VPS 主机
最新优惠
正版授权
VPS 补货监控