优雅草新产品2026 年 10 月 31 日公测完毕v1.0.0 优雅草人机盾正式运营上线

人机盾(Renjidun)

优雅草科技的人机验证平台。给网站和应用的注册、登录、下单等关键动作加上滑块与点选验证:真人顺手通过,脚本批量注册在服务端被拦住。

2026 年 10 月 31 日,公测完毕。v1.0.0 优雅草人机盾正式运营上线。

生产站点:人机盾

产品介绍

人机盾是一套可独立接入的验证服务,也是优雅草后续产品统一使用的人机验证能力。它包含四部分:

  • 客户控制台:创建应用、签发密钥、查看额度与订单,并提供接入文档和在线演示。
  • 嵌入式验证组件(Widget):滑块、点选两种题型,支持弹窗(popup)和页面内嵌(inline)。
  • 前端 SDK :业务页面只需 mount,用户完成后拿到一次性 pass_token。
  • 校验 API 与运营后台 :业务服务器持私钥调用 POST /captchaapi/v1/validate;运营侧基于 likeadmin 管理平台配置。

一次完整验证分成两段,职责分开:

  1. 浏览器里,用户完成当场生成的滑块或点选,组件颁发 pass_token。
  2. 业务服务器把这个 token,连同场景 action、网站来源 expected_origin、会话 context 一起交给人机盾校验。只有 success = true 且这几项与出题时一致,注册、登录或下单才会继续。

浏览器里滑过,只说明「这一次挑战有了凭证」。账号是否创建、订单是否提交,以服务端校验为准。私钥 key_id.secret 只放在服务器环境变量 CAPTCHA_SECRET,不进入网页、Git、App 包或日志。

适合这些场景:

  • 开放注册、登录、找回密码、下单、领券、发帖、短信发送等会被脚本撞库或批量灌入的入口。
  • 希望验证码、题面和校验规则有人持续维护,而不是每个业务自己养一套引擎。
  • 已有网站或后台,希望少改协议、尽快接到现成验证上。

在线体验:人机盾

接入文档:人机盾

截图

挡住批量注册

人机盾面向的就是「防人机注册」。脚本、注册机、协议重放这一类自动化开户,是它要拦住的主要流量。

对注册、登录这类入口,人机盾可以解决 99% 的防人机注册问题:大多数批量脚本过不了「当场看图、按原图坐标作答、再经业务服务器复核」这一关,假注册在进入业务之前就被丢掉。加载题目、刷新、答错、仅仅拿到 pass_token 都不计入成功验证;第一次校验通过才算一次有效核销。

人机盾负责把明显的机器流量挡在业务之前。注册频控、手机号或邮箱校验、风控策略仍然由业务自己保留,和人机盾叠在同一条链路上。

滑块为什么难被机器跳过

滑块的难度在于:机器必须在不知道答案的情况下,对一张当场生成的图做出正确位移,并且整条链路还要能被业务后端复核。想用模拟人手的方式稳定跳过,难度很大。

题面由验证码引擎在服务端生成。缺口的真实位置不写在网页源码里,业务页面也不能自己调用出题和判题接口,也不能自己拼接组件地址。前端提交的是换算回原图的坐标:组件按当前显示尺寸把拖动位置映射回去。脚本若按屏幕像素、固定偏移或一段录好的轨迹去拖,换一张背景、换一次缩放或裁切,落点就会偏掉。挑战有过期时间,过期后凭证作废,需要重新出题。

点选是同一套原则的另一种题:服务端判定三个坐标,页面不能自己宣布「已经是人」。

即便脚本在浏览器里把滑块拖到了看似正确的位置,业务服务器仍要用私钥向人机盾核销 pass_token。核销时 site_key、场景 action、来源 Origin、会话 context 必须和出题时一致,token 用过即失效。来源精确到「协议 + 主机 + 端口」,不接受通配符;http://localhost:5173 和 http://127.0.0.1:5173 是两个来源。expected_origin 填的是业务网站自己的地址,例如 https://www.example.com。

所以,一条能长期用来批量注册的绕过,通常要同时做到:看图找缺口、按原图坐标系提交、维持有效会话和精确来源、跟上题面与校验规则的变化。改一个请求参数,或重放一次接口,完成不了这种长期绕过。

持续更新,让绕过得不偿失

一次碰巧滑过去,花费有限。真正持续烧钱的,是每次题面、引擎和校验规则更新之后,还要把绕过重新做稳。

人机盾会持续更新背景图、题型资源和校验约束。专门维护视觉识别、坐标换算和协议适配的一方,每次更新都要重做一轮。对想跨过人机盾、用机器批量注册的人来说,这笔持续投入相对能拿到的假账号,成本过高,得不偿失。只要更新不停,这条成本曲线就还在。

优雅草后续产品默认接入

从 v1.0.0 正式运营起,优雅草后续所有产品默认接入人机盾。之后推出的网站、控制台和业务系统,在注册、登录等关键入口统一使用人机盾。

人机盾因此是优雅草自己的验证底座,也按同一套控制台、SDK 和校验接口对外提供。外部团队创建自己的应用和密钥,即可把同一套验证接到自己的产品上。

智能接入

智能接入是接入文档最前面的能力,也是当前最快的接入方式。你不需要先通读每种语言的示例。控制台根据你选中的应用,生成一段可直接交给编程助手的提示词;助手按这段提示词改你的仓库,把验证接到注册或登录流程里。

文档入口:人机盾

怎么用

  1. 登录控制台,创建应用。填写允许来源(精确到协议、主机、端口),填写场景(如 register、login),得到公开的 site_key。
  2. 在「密钥」页创建私钥。完整的 key_id.secret 只显示一次,写入服务器环境变量 CAPTCHA_SECRET。
  3. 打开接入文档,选择该应用的 site_key、场景,以及你自己网站的 Origin。
  4. 点击「复制提示词给 AI」。
  5. 把提示词发给 Cursor、Claude、ChatGPT、通义千问或 GitHub Copilot,让它直接修改当前仓库并跑通,而不是只回一段教程。

尚未创建应用时,site_key 会保持 YOUR_SITE_KEY。助手会用环境变量占位,并提醒先到控制台创建应用和密钥。

提示词里已经写明的事实

助手不需要再猜测接口路径或凭据放在哪里。提示词会带上这些内容:

|-----------------------|-----------------------------------------------------------------------------|
| 项 | 内容 |
| 平台 Origin | 当前人机盾站点,例如 https://renjidun.youyacao.com |
| 业务网站 Origin | 你在文档页填写的地址,校验时作为 expected_origin |
| site_key / action | 所选应用和场景 |
| 前端 SDK | 优先使用 IIFE:/sdk/captcha-client.iife.js,全局对象 CaptchaClient |
| 校验接口 | POST /captchaapi/v1/validate,请求头 Authorization: Bearer <CAPTCHA_SECRET> |
| 私钥 | 只读服务器环境变量 CAPTCHA_SECRET,格式 key_id.secret |

提示词同时约束助手遵守这些接入规则:

  • 私钥只出现在服务器环境变量,不写入网页、Git、App 包、小程序或前端环境变量。
  • expected_origin 使用业务网站 Origin。
  • 页面通过 <script src=".../captcha-client.iife.js"> 加载 SDK。Vue、React、Vite、Webpack 若要使用 ESM,先把 /sdk/captcha-client.mjs 下载到自己的静态目录再本地 import。
  • context 由业务后端生成:32 字节随机数,编码为 64 位十六进制,写入服务端会话后再交给页面。页面自己不生成 context,也不调用 /captchaapi/v1/challenge 和 /solve。
  • 默认弹窗必须调用 inst.open() 才会显示;组件卸载时调用 destroy()。表单内嵌使用 display: 'inline'。
  • 只有响应里 success === true,且 action、origin、context 与本地会话一致,才执行真正的注册、登录或下单。

助手会改哪些地方

  1. 扫描仓库,判断前端框架和后端语言,定位该场景对应的页面与接口。
  2. 后端增加下发 context 的接口(例如 GET /captcha-context)。
  3. 前端在对应页面挂载 SDK。
  4. 注册或登录接口增加 pass_token 校验,校验未通过则不进入业务。
  5. 在 .env.example 中增加 CAPTCHA_SECRET、CAPTCHA_SITE_KEY、CAPTCHA_ORIGIN 占位,不提交真实私钥。
  6. 改完后列出动过的文件,以及本地如何验证。

智能接入解决的是「怎样改到你的项目里」。一次验证是否有效,仍然只认业务后端拿到的校验结果。

手工接入仍然可用。文档页提供 HTML、Vue 和 ESM 说明;仓库 examples/captcha 提供 HTML、PHP、Node、Python 示例。完整字段、错误码和计费说明以控制台文档页为准。

接入时序

复制代码
业务页   →  你们的后端:申请 context(写入 session)
业务页   →  SDK 组件:出题 / 答题
业务页   →  你们的后端:提交 pass_token
你们的后端 →  POST /captchaapi/v1/validate (Bearer 私钥)
校验通过后,再执行真正的注册 / 登录 / 下单

计费口径:加载、刷新、答错、拿到 pass_token 都不扣费。第一次成功校验扣 1 次。同一 request_id 在 24 小时内、相同指纹的重放返回同一个 validation_id,不再扣费。

仓库结构

|-------------------|--------------------------------------------------------|
| 目录 | 说明 |
| admin/ | 管理后台前端(Vue 3 + Vite + Element Plus) |
| server/ | 后端 API(ThinkPHP 8,含 adminapi / api / captchaapi) |
| web/ | 人机盾控制台、Widget、SDK(Vue 3 + Vite) |
| deploy/captcha/ | 验证码引擎部署脚本与 Docker Compose |
| examples/ | 多语言接入示例(HTML、PHP、Node、Python) |

技术栈

  • 后端:PHP ≥ 8.2、ThinkPHP 8、MySQL
  • 管理端:Vue 3、Vite、Element Plus、Pinia
  • 人机盾 Web:Vue 3、Vite、Element Plus、go-captcha-jslib
  • 验证码引擎 :Go Captcha 服务(见 deploy/captcha)

环境准备

  • Node.js 18+(建议 LTS)
  • PHP 8.2+、Composer 2
  • MySQL 5.7+ / 8.x
  • (可选)验证码引擎运行时,按 deploy/captcha 脚本准备

快速开始

以下步骤用于在本地运行人机盾平台本身。把验证接到你自己的网站,走上一节的智能接入或控制台文档即可。

1. 后端 server

cpp 复制代码
`cd server
composer install
cp .example.env .env
# 编辑 .env:数据库、项目标识等
php think`

按需导入 server/sql 中的数据库脚本,并将 Web 服务器文档根目录指向 server/public。

2. 管理后台 admin

复制代码
cd admin
cp .env.development.example .env.development
# 配置 VITE_APP_BASE_URL 指向后端
npm install
npm run dev

构建并发布到后端静态目录:

复制代码
npm run build

3. 人机盾前端 web

复制代码
cd web
cp .env.production .env.development   # 或按实际新建本地 env
npm install
npm run dev

生产构建(控制台 + Widget + SDK):

复制代码
npm run build

构建产物会发布到 server/public 下的 console / widget / sdk 等目录。

4. 验证码引擎(可选)

复制代码
cd deploy/captcha
# 预检、启动、备份等见同目录 *.ps1 与 docker-compose.production.yml

本地 Go 工具链、引擎 runtime 二进制默认不入库,需在部署机单独准备。

主要能力

  • 控制台:应用、密钥、额度、订单、接入文档、智能接入提示词与在线演示
  • Widget / SDK:滑块、点选;mount 后取得 pass_token;弹窗与内嵌两种展示
  • 服务端校验:POST /captchaapi/v1/validate(业务后端持私钥校验)
  • 来源与场景绑定:允许来源精确到协议、主机、端口;场景如 register、login
  • 管理后台:基于 likeadmin 的运营与系统配置

开发说明

  • 提交前请确认未把 .env、上传文件、vendor / node_modules、构建产物推入仓库(见根目录 .gitignore)。
  • package-lock.json、composer.lock 建议一并提交,保证依赖一致。
  • server/public/pc 为 PC 端静态资源;admin / console / sdk / widget 的构建拷贝默认忽略,需本地或 CI 构建后再部署。

相关链接

  • 生产站点:人机盾
  • 控制台文档(含智能接入):人机盾
  • 在线演示:人机盾
  • 校验接口:/captchaapi/v1/validate
  • IIFE SDK:/sdk/captcha-client.iife.js
  • ESM SDK:/sdk/captcha-client.mjs
相关推荐
是真的小外套1 小时前
网络安全实战第10期:Nmap主机发现之一键扫清整个网段
网络·安全·web安全
垚垚学技术_聚焦云原生1 小时前
Ansible Vault 安全实践:敏感密码、密钥加密存储方案
安全·elasticsearch·ansible
鬼手点金2 小时前
提示注入:上下文安全的核心威胁
人工智能·安全·microsoft·机器学习·缓存·prompt
山川绿水2 小时前
DeepSeek-DSH安装报错[deploy] 命令失败:npx -y pnpm install --prefer-offline
人工智能·网络安全
ScilogyHunter2 小时前
Hercules系列安全MCU功能安全原理详解
java·单片机·安全·hercules
Data-Miner3 小时前
不本地部署,大模型怎么安全用?
大数据·人工智能·安全
李纲明3 小时前
WordPress 媒体库上传失败或一直转圈:先核 PHP 上传限制与目录权限,再查安全插件与对象存储
运维·开发语言·安全·php·wordpress·媒体库·devdiy
中云DDoS CC防护蔡蔡11 小时前
DDOS和CC攻击谁更可怕
运维·服务器·经验分享·网络安全·ddos
leagsoft_100311 小时前
勒索病毒扩散控制深度解析:四大扩散路径、主流方案局限与联软科技差异化实践
网络安全·零信任·内网安全·勒索病毒·微隔离·防勒索·ad域安全