技术咨询专线

137-9839-1694

WordPress 网站的登录页全天候被扫描和尝试登录,是后台账号被盗的主要途径。本文讲清暴力破解的识别方法,以及四层可落地的防护:改登录地址、限制尝试次数、两步验证、按来源限流,并给出被破解之后的应急处理顺序。

WordPress 被暴力破解:登录保护与限流的设置方法(pic1)

只要网站装的是 WordPress,登录页(wp-login.php)从上线那天起就会被人持续扫描:机器人不停尝试常见的用户名密码组合,一天几百上千次都算常见量。多数尝试不会得手,但只要有一个弱密码账号被猜中,整站就等于交了出去——文章被篡改、被挂跳转、被群发垃圾内容,都是这类入侵的典型后果。好在防护并不复杂,按下面的顺序做,绝大多数暴力破解会被挡在门外。

一、先确认自己有没有已经被盯上、甚至已被破解

判断方法很直接:看访问日志里 wp-login.php 的请求量和来源。如果单一 IP 或同一批 IP 每天对登录页发几十上百次 POST 请求,就是在被暴力尝试。更严重的信号是用户列表里出现了你不认识的 administrator 账号、文章发布记录里有你没发过的内容、或后台“用户”页显示有人最近登录过——出现这些要立刻改掉所有管理员密码,再按文末的应急顺序处理。没出现这些,也建议把密码全部换成 12 位以上的随机组合,密码弱是破解得手的必要条件。

二、限制登录尝试次数:性价比高的一步

暴力破解的原理是反复试,那就让“反复试”变得代价高昂。装一个登录限流插件(Limit Login Attempts Reloaded、WPS Limit Login 这类都可以),设置成同一 IP 连续错 5 次就锁定 20 分钟、累计多次锁定时间翻倍。这一步做完,机器人一天能尝试的次数会从几千次掉到几十次,实际破解概率趋近于零。注意锁定提示页不要泄露“这个用户名存在”的信息,用户名和密码错了都提示同一句,避免被拿来批量探测有效用户名。

三、改掉登录地址与隐藏用户名

WordPress 默认登录地址全站通用,机器人按这个地址扫描。把登录地址改成只有自己知道的路径(用 WPS Hide Login 之类的插件即可),扫描请求会直接落到 404,日志会立刻干净很多。用户名也别用 admin——安装时就用别的名字;如果历史原因已经存在 admin 账号,新建一个管理员账号顶替后把 admin 降级或删除。机器人字典里的用户名和密码是配对的,两样都不在字典里,破解就没有切入点。

四、给管理员加两步验证

限流防的是机器猜测,两步验证防的是“密码本身泄露”这种限流挡不住的情况。给所有管理员账号开启两步验证(用 Two Factor、Wordfence 这类插件都支持),登录时除了密码还要输入手机上的动态码。代价只是每次登录多输一个码,收益是密码就算被钓鱼或从别处泄露,账号也进不去。只有几个人的小站,全员开;人多的大站,至少管理员和编辑这两类能改内容、能装插件的账号必须开。

五、按来源收紧:登录页只让该来的人访问

如果维护团队都在固定地点或固定网络办公,还可以在服务器层面直接收紧:Nginx/Apache 规则里把 wp-login.php 限制为公司出口 IP 访问,其他来源全部拒绝。这是比插件更靠前的防线,请求根本到不了 WordPress。做不到固定 IP 的站点,退一步用防火墙或 CDN 的国家/地区规则屏蔽明显无关的来源,也能砍掉大部分扫描量。注意规则上线前先确认自己的网络出口 IP 稳定,否则会把自己锁在门外。

六、配套的两件事:更新与备份

登录防护做得再好,也补不了另外两个入口:一是核心程序、主题、插件长期不更新,攻击者可以走漏洞绕过登录页直接进来,所以自动更新或每月一次的手动更新要固定下来;二是备份,万一账号真被破解,数据被改挂了马,一份能恢复的备份就是把损失拉回可控范围的保险。更新、备份和登录防护是一套,不是三选一。

六、别漏掉 xmlrpc.php 这个旁门

改完登录页还有个常被漏掉的口子:xmlrpc.php。这是 WordPress 早年提供的远程接口,攻击者可以利用它把成百上千次密码尝试打包成一次请求,直接绕过登录页的限流——这就是有些站点“明明装了限流插件还是被破解”的原因。如果网站没有用到通过这个接口发布的移动应用或第三方工具,直接在服务器层面禁掉 xmlrpc.php 的访问是最干脆的做法;用不了服务器规则的,插件里一般也有关闭选项。顺手检查一下 REST 接口的用户枚举问题:访问 /wp-json/wp/v2/users 这类地址如果能把用户名列出来,等于把登录名直接送给了攻击者,要用代码或安全插件把用户信息从公开接口里隐藏掉。登录防护做的是整套闭环,正门锁好了,侧门也要关。

七、万一被破解:应急处理顺序

发现已被入侵时按这个顺序处理:先把服务器和数据库做一次完整备份留证,再改掉所有账号密码(包括数据库和主机面板),然后从可信的备份恢复站点,逐个检查用户表、已发布文章和主题文件有没有被注入的内容,最后把上文第二到第五步的防护全部补齐。很多站点被反复入侵,就是因为只清了表面内容、没有堵住“弱密码加无限流”这个最初入口。

八、把日志监控变成常规动作

防护设置完成后,剩下的是长期监控。两个低成本的习惯值得坚持:一是每周扫一眼登录页的访问日志,看 POST 请求量有没有异常抬升、锁定记录集中在哪些 IP,量大的来源可以加进黑名单;二是开启登录通知,任何账号登录成功就给管理员发一封邮件——自己人登录收到邮件是正常打扰,收到了不认识的登录记录就是即时警报。有些企业还配置了文件变更监控,核心文件被改动立刻告警,这一步对托管站点尤其有用。监控的意义不在于每天盯着,而在于出事的那天能在几分钟内知道,而不是几周后从客户那里听说网站不对劲。

总结

WordPress 登录页被扫描是常态,防护的关键是把“无限次尝试”变成“代价高昂的尝试”:限流锁住量、改地址避开扫描、两步验证兜住密码泄露、来源限制砍掉无关流量,再用更新和备份补住其余入口,最后靠日志和登录通知保持监控。整套设置一两个小时能完成,却能把账号被盗这个最常见的入侵途径基本关死。如果你们想让维护服务商代做整套加固,或者已经在日志里发现异常登录,欢迎联系我们处理:137-9839-1694。

ABOUT THE AUTHOR 锐客网内容组 · 小锐

十年一线建站与运维经验,写我们真正在项目里踩过的坑:怎么选型、怎么控成本、上线后怎么养。

聊聊你的项目

获取建站方案评估

想搭建或改版网站,却不确定做哪种站、大概多少钱、要多久?留下行业与需求,我们给出方案规划与报价参考。