WordPress 登录页面(/wp-login.php 和 /wp-admin/)每天都被机器人针对。这些机器人全天候自动运行,循环使用常见用户名,如 admin、administrator 和 user,配合数百万个常用密码。如果您的网站使用弱密码或对登录尝试没有限制,机器人可以在几小时内猜测进入。本文涵盖您应该立即实施的多层保护,包括有效的 .htaccess 示例、推荐的插件以及如何发现正在进行的攻击。
有效的 WordPress 登录保护依赖于深层防御原则:分层多层防护措施,而不是仅依赖单一措施。如果一层被突破,其他层仍然可以阻止。例如,即使机器人正确猜测您的密码,双因素身份验证仍会阻止其登录。在本指南中,我们将从应用程序级别(WordPress 插件)到网络服务器级别(.htaccess)保护您的网站。
1. 更改登录 URL(最重要)
默认情况下,WordPress 使用 /wp-login.php — 机器人很容易找到。使用 WPS Hide Login 插件将其更改为不可预测的 URL:
- 安装插件:WPS Hide Login
- 转到设置 → WPS Hide Login
- 将登录 URL 更改为自定义内容,例如
/staff-portal-2026 - 保存并记住新 URL
完整的登录安全检查清单
在深入了解每项措施之前,这是您应该做的所有事情的摘要表,以及其优先级和设置难度。将其用作检查清单,以确保不会遗漏任何关键步骤:
| 措施 | 优先级 | 难度 | 工具 |
|---|---|---|---|
| 强密码(16+ 个字符) | 关键 | 简单 | 密码管理器 |
| 启用双因素身份验证 (2FA) | 关键 | 中等 | WP 2FA / Google Authenticator |
| 限制失败的登录尝试 | 高 | 简单 | 限制登录尝试已重新加载 |
| 更改/隐藏登录 URL | 高 | 简单 | WPS Hide Login |
| 禁用 XML-RPC(如果未使用) | 中等 | 简单 | .htaccess / 插件 |
| 添加验证码 / reCAPTCHA | 中等 | 简单 | reCAPTCHA / hCaptcha 插件 |
| 按 IP 限制 wp-admin (.htaccess) | 高(如果有静态 IP) | 中等 | .htaccess |
您不必在一天内完成所有这些操作。从标记为"关键"优先级和"简单"难度的项目开始 — 设置强密码并启用 2FA — 然后逐步为您的网站分层添加其余措施。
2. 限制失败的登录尝试
安装 限制登录尝试已重新加载 插件:
- 3-5 次失败登录尝试后锁定 IP
- 重复失败时增加锁定时间
- 锁定发生时发送电子邮件通知管理员
3. 启用双因素身份验证 (2FA)
安装 WP 2FA 或 Google Authenticator 插件:
- 安装并激活插件
- 转到用户 → 个人资料 → 双因素选项
- 启用 TOTP(Google Authenticator / Authy)
- 用您的验证器应用扫描二维码
4. 使用强管理员密码
- 至少 16 个字符,混合数字、大小写字母和特殊字符
- 使用 Bitwarden 或 1Password 等密码管理器
- 永远不要在账户之间重复使用密码
5. 使用 IP 白名单阻止 wp-admin (.htaccess)
如果您有静态 IP 地址,请添加到 .htaccess:
<Files wp-login.php> Order Deny,Allow Deny from all Allow from 1.2.3.4 </Files>
将 1.2.3.4 替换为您的实际 IP。
6. 禁用 XML-RPC(如果不需要)
XML-RPC 被用于平行暴力破解攻击。添加到 .htaccess:
<Files xmlrpc.php> Order Deny,Allow Deny from all </Files>
或使用禁用 XML-RPC 插件。
使用 .htaccess 保护 wp-admin(深入)
在网络服务器级别 (Apache) 使用 .htaccess 文件进行保护有一个关键优势:它在请求到达 PHP/WordPress 之前阻止机器人,节省服务器资源,并且比仅依靠插件更安全。以下是在实践中行之有效的技术。
按 IP 限制 wp-admin 访问
如果您从具有静态 IP 的办公室或家中管理您的网站,您可以通过在 wp-admin/ 文件夹内创建 .htaccess 文件来仅允许您的 IP 访问 wp-admin/ 目录:
<RequireAll> Require ip 1.2.3.4 Require ip 203.0.113.0/24 </RequireAll>
第一行允许单个 IP,第二行允许整个子网(对于 IP 在范围内变化的办公室很有用)。⚠️ 警告: 如果您的 IP 是动态的(每次重置路由器时都会变化),此方法可能会将您锁定在自己的网站之外。改用 2FA + 限制登录。
添加第二个密码层(HTTP Basic Auth)
另一种非常有效的技术是在服务器级别对 wp-login.php 进行密码保护。机器人甚至在到达 WordPress 登录页面之前就会遇到浏览器弹出窗口,要求输入用户名/密码。首先创建 .htpasswd 文件(最好在文档根目录之外),然后将其添加到您的网站根目录的 .htaccess 中:
<Files wp-login.php> AuthType Basic AuthName "Restricted Area" AuthUserFile /home/user/.htpasswd Require valid-user </Files>
使用命令 htpasswd -c /home/user/.htpasswd myadmin 在服务器上创建 .htpasswd 文件,或使用在线 htpasswd 生成器。这几乎完全阻止了暴力攻击,因为典型的机器人无法通过 HTTP Basic Auth 层。
阻止没有 Referer 的请求(过滤虚假 POST)
大多数机器人直接对 wp-login.php 发起没有有效 HTTP Referer 的 POST 请求。您可以使用 mod_rewrite 规则阻止这些:
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{HTTP_REFERER} !^https://(www\.)?yoursite\.com [NC]
RewriteRule ^(.*)?wp-login\.php(.*)$ - [F]
将 yoursite.com 替换为您的真实域名。此规则只阻止不是来自您自己网站的 POST 请求(登录表单提交),不会影响正常用户。
7. 安装安全插件
- Wordfence Security — WAF + 恶意软件扫描器 + 登录安全
- Solid Security (iThemes) — 30+ 项安全措施结合
- 一体化安全 (AIOS) — 免费且初学者友好
一次只使用一个安全插件 — 不要同时安装多个,因为它们可能会冲突、减慢您的网站速度或破坏登录。如果您使用 Wordfence 或 Solid Security,限制登录和 2FA 功能通常是内置的,所以您不需要为它们单独使用插件。
暴力攻击的迹象以及如何应对
及早发现攻击可以让您在账户被入侵之前做出反应。以下是 WordPress 登录页面受到攻击的警告信号:
- 网站异常缓慢或 CPU 使用率高 — 机器人发起快速请求,给服务器造成压力,有时足以导致主机临时暂停账户。
- 锁定通知电子邮件泛滥 — 如果设置了限制登录尝试,您将收到比平时多得多的 IP 锁定电子邮件。
- 奇怪的 IP 重复尝试登录 — 检查 Wordfence 日志,您会看到外国 IP 尝试以
admin身份登录数百次。 - 您没有创建的新用户账户 — 网站可能已被入侵的标志。立即做出反应。
- 没有明显原因而被修改的文件 — 使用 Wordfence 的文件完整性扫描器检查。
发现攻击时如何应对:
- 立即更改每个管理员密码并强制注销所有会话。
- 如果还没有启用 2FA — 它可以立即停止暴力破解,即使密码已泄露。
- 通过 Wordfence 或
.htaccess阻止攻击 IP(Require not ip 1.2.3.4)。 - 如果攻击很严重,启用 Cloudflare 的"受攻击模式"以在机器人到达您的服务器之前在 CDN 级别过滤它们。
- 使用 Imunify360 或 Wordfence 扫描整个网站的恶意软件,以确保没有后门存在。
常见问题(FAQ)
仅仅更改登录 URL 是否足够安全?
更改登录 URL 是"通过隐晦性实现安全" — 它大大减少了进攻您网站的机器人数量,但如果攻击者发现新 URL,则无法提供 100% 的保护。始终将其与 2FA 和强密码结合使用;千万不要单独依赖这种方法。
我应该禁用 XML-RPC 吗,这会破坏什么吗?
如果您不使用 Jetpack、WordPress 移动应用或需要 XML-RPC 的外部服务,可以禁用它以关闭平行暴力破解向量(XML-RPC 可以在单个请求中测试许多密码)。但如果您通过移动应用管理您的网站,请使用限制 XML-RPC 方法的插件,而不是完全禁用它。
2FA 和限制登录尝试中哪个更重要?
它们的作用不同,应该一起使用。限制登录会减慢机器人的速度并阻止多次失败的 IP,而 2FA 是最后的屏障,即使您的密码泄露也能阻止攻击者。如果必须选择一个,2FA 提供更强的保护 — 但实际上应该同时启用两者。
虚拟主机也能帮助保护免受暴力破解吗?
可以。好的虚拟主机包括服务器级别的保护,例如 Imunify360,它自动检测和阻止重复登录失败的 IP,以及在恶意请求到达 WordPress 之前过滤它们的 WAF(Web 应用防火墙)— 即使您没有自己配置插件,也能提供额外的保护层。
优先级摘要: (1) 更改登录 URL → (2) 限制尝试 → (3) 启用 2FA → (4) 强密码 → (5) 安全插件。完成所有 5 项可将风险降低 95% 以上。