一个轻量、可视化的 WordPress 安全插件,把阿里云边缘安全加速(ESA)AI 验证码 + 注册页重定向 + API 注册防护三件事一次搞定。后台可视化配置,边缘节点验签,接口层兜底,正好补齐"前端有验证码、后端接口裸奔"的安全短板。

一、背景:登录注册页正在被批量攻击
只要你的 WordPress 站点对外开放注册,或仅仅是把登录入口暴露在外网,大概率就在面对这三类问题:
- 暴力破解登录:恶意 IP 用字典 / 撞库程序不断尝试
wp-login.php,消耗资源、拖慢网站,甚至撞出弱密码账号。 - 机器人批量注册:脚本自动提交注册表单,瞬间灌入大量垃圾用户、广告账号。
- 绕过前端直接打 API(最隐蔽):很多主题(比如 AeroCore)把注册做成前端 Vue 弹窗,攻击者根本不走界面,而是直接调用
wp-json/wp/v2/users、admin-ajax.php、xmlrpc.php等接口批量注册,前端那层验证码形同虚设。
传统的"加个验证码"往往只挡住了界面,挡不住接口。星辰云卫 的思路是:验证码在边缘节点验签 + 把后台注册重定向到前端弹窗 + 在接口层把绕过路径彻底堵死。
二、星辰云卫能做什么
一句话总结:在登录/注册页注入阿里云 ESA AI 验证码,把后台注册页重定向到前端弹窗,并封堵脚本通过 API 绕过前端直接注册。

三大核心能力:
- 阿里云 ESA AI 验证码(登录页 / 注册页)
- 注册页重定向(后台
wp-login.php?action=register→ 前端 AeroCore 主题弹窗) - API 注册防护(封堵 REST API / wp-login / admin-ajax / XML-RPC 等绕过路径)
三、核心能力一:阿里云 ESA AI 验证码
星辰云卫把阿里云边缘安全加速(ESA)的 AI 验证码集成进 WordPress 登录页和注册页。它的特别之处是:验签在 ESA 边缘节点完成,不需要你改任何后端代码。
- ✅ 登录页、注册页自动注入,可灵活选择"仅登录 / 仅注册 / 两者"
- ✅ 支持嵌入式(embed)和弹出式(popup)两种模式
- ✅ 支持多语言(中文、英文、日文、韩文等)
- ✅ 可自定义验证码尺寸(宽 200–500px,高 30–100px)
- ✅ 内置调试模式,浏览器控制台输出排障信息
- ✅ 后台可视化配置,无需手写代码
前提条件:站点流量必须经过阿里云 ESA 代理(DNS 已指向 ESA),并在 ESA 控制台配置好验证码规则、拿到"身份标"和"场景ID"。
四、核心能力二:注册页重定向到前端弹窗
很多现代主题(如本站的 AeroCore)把注册做成了 Vue 弹窗,而不是独立页面。直接访问 wp-login.php?action=register 要么 404,要么体验割裂。
星辰云卫把后台注册请求重定向到首页并带上触发参数,由前端 JS 自动弹出注册弹窗:

工作流程:
wp-login.php?action=register
│ 301 重定向
▼
/?aero_register=1
│ 前端 JS 检测 URL 参数
▼
dispatchEvent → aerocore:open-login-modal
│ (detail: { initialMode: "register" })
▼
AeroCore Vue 弹窗以「注册」模式打开
后台可配置:
- 弹窗触发参数名(默认
aero_register) - 弹窗触发事件名(默认
aerocore:open-login-modal)
前端 JS 会自动清除 URL 参数,避免刷新时重复弹窗。
五、核心能力三:API 注册防护
这是星辰云卫最关键、也最容易被人忽略的一层。它专门封堵"不走界面、直接调接口"的批量注册:

被封堵的途径:
- ❌ REST API 用户创建
POST /wp-json/wp/v2/users→ 403(管理员除外) - ❌ REST API 用户列表
GET /wp-json/wp/v2/users→ 未登录返回 404(防止用户名枚举泄露) - ❌
wp-login.php?action=register→registration_errors过滤器兜底拦截 - ❌
admin-ajax.php脚本注册 → 校验Origin/Referer头,拦截无来源请求 - ❌ XML-RPC 用户方法 → 移除
wp.createUser等
保留的途径:
- ✅ AeroCore 主题前端弹窗 AJAX 注册
- ✅ 后台管理员手动创建用户(
wp-admin/user-new.php)
这样一来,机器人只剩"走前端弹窗 + 完成验证码"这一条路——而这条路本来就该是真人操作。
六、安装与配置(实操教程)

1. 安装
- 将插件文件夹上传到
/wp-content/plugins/ - 在 WordPress 后台「插件」页面启用「星辰云卫」
2. 在阿里云 ESA 控制台配置验证码规则
- 打开 ESA 控制台 → 验证码配置
- 新增规则:需验签接口填
www.yourdomain.com/wp-login.php,请求方法POST,验证码类型选"一点即过" - 保存并获取身份标(prefix)和场景ID(SceneId)
3. 填写插件配置
进入「设置 → 星辰云卫」,填写身份标、场景ID,选择应用页面(登录 / 注册 / 两者),保存即可。
4. 测试
用无痕窗口访问登录页、注册页,确认验证码正常显示与验签;再用 curl 测一下 POST /wp-json/wp/v2/users,应被 403 拦截。
关键配置项一览:
| 配置项 | 说明 |
|---|---|
| 启用验证码 | 总开关,随时暂停 / 恢复 |
| 应用页面 | 登录页 / 注册页 / 两者 |
| 验证码模式 | 嵌入式(推荐)或弹出式 |
| 语言 | 中文、英文、日文、韩文等 |
| 宽度 / 高度 | 自定义尺寸 |
| 调试模式 | 控制台输出调试信息 |
| 启用注册页重定向 | 把 wp-login 注册跳到前端弹窗 |
| 弹窗触发参数名 / 事件名 | 适配主题弹窗 |
| API 注册防护开关 | 封堵脚本绕过前端注册 |
后台采用 Tab 标签页布局(验证码配置 / 注册页重定向 / API 防护 / 帮助),顶部有状态 Chip 实时显示三大功能开关状态,Sticky Tab 栏让保存按钮始终可见。
七、常见问题
Q:本地开发环境验证码能用吗?
A:ESA 验签只在生产环境(流量经过 ESA)生效;本地验证码会显示,但验签不会被处理。
Q:验证通过但登录失败?
A:检查 ESA 规则里的 URI 是否与实际请求路径完全一致(含域名、协议)。
Q:只想在登录页显示验证码?
A:在「设置 → 星辰云卫」关闭「应用页面」里的「注册页」开关即可。
Q:临时关闭验证码?
A:关闭「启用验证码」开关即可,无需停用插件。
八、小结
星辰云卫把"验证码 + 重定向 + API 防护"收敛到一个轻量插件里:后台可视化、边缘节点验签、接口层兜底。它不一定是最重的安全方案,但恰好补齐了大多数 WordPress 站点最容易被打穿的那块短板。

