BotDeflector
BotDeflector 是 Botdeflector 的一张挑战图进,一组要点击的坐标出。挂在登录、注册、联系表单或结账流程旁边的验证组件:先在后台算一小会儿,再让用户在图上按要求点几个图标;通过后组件产出一个校验凭证,随表单一起提交,站点后端再回调它的接口验签。
接口规格
| 项目 | 值 |
|---|---|
| type | botdeflector |
| 必填参数 | body |
| 可选参数 | 无 |
| 返回 | 一组坐标点(solution.points) |
| 怎么用这个解 | 要点击的坐标 |
| 价格 | $2.36 / 1K 次 —— 按成功计费,没解出来退款 |
| 厂商文档 | Botdeflector 官方文档 |
参数去页面哪里取
下面全部是可以直接照做的定位方法 —— DOM 属性名、JS 全局变量名、script 上的 query 参数。
⚠ 它没有公开的 DOM 属性名或脚本 URL 文档(见 gotchas),所以最可靠的判据是资源域名:组件静态资源在 challenge.botdeflector.eu,接口在 api.botdeflector.eu —— 两个子域 2026-08-30 实测都解析且在线(静态域返 S3 风格的 AccessDenied,接口域对未知路径返 404,都说明主机真实存在)。
判断一个页面用没用它,一行:
[...new Set([...document.scripts].map(s=>s.src).concat(performance.getEntriesByType('resource').map(e=>e.name)))].filter(u=>/botdeflector/i.test(u))取挑战图(含原图与显示尺寸,用于把坐标换算回屏幕):
[...document.querySelectorAll('img,canvas')].map(e=>({cls:e.className,natural:[e.naturalWidth||e.width,e.naturalHeight||e.height],shown:[e.clientWidth,e.clientHeight],data:e.tagName==='CANVAS'?e.toDataURL():e.src}))组件常渲染在 shadow DOM 里,上面那行扫不到就穿透一层:
[...document.querySelectorAll('*')].flatMap(e=>e.shadowRoot?[...e.shadowRoot.querySelectorAll('img,canvas')]:[]).map(n=>n.tagName==='CANVAS'?n.toDataURL():n.src)图去掉 data:image/...;base64, 前缀和换行,放 body。
调用示例
一个端点解全部验证码类型 —— 换一种验证码只改 type 这一个字段。
curl -X POST https://api.everyinfra.com/api/v1/captcha \ -H "Authorization: Bearer omg_你的KEY" \ -H "Content-Type: application/json" \ -d '{"type":"botdeflector","body":"<body>"}'
{ "solution": { "points": "…" }, "billing": { "charged": true, "credits": 170 }}
怎么确认目标站用的就是它
把一次浏览器端计算(工作量证明)与一道图标点选题组合起来,通过后签发 JWT 形式的校验 token。我们这条**只做那道点选题的识别**并交付坐标;点击、拿 token、提交表单都在调用方手上。
容易搞混的
Friendly Captcha、ALTCHA、captcha.eu 等欧洲 privacy-first 验证码 —— 同样主打 GDPR 与工作量证明,但各是各家、DOM 与凭证字段完全不同;不能按「欧洲 + PoW」就当成同一个东西。
常见部署场景
- 欧洲中小站点为主;官方页面点名电商、SaaS、新闻出版、游戏、票务与金融
- 卖点是 GDPR 合规与「Made in Europe」,2026 年才开始铺开,装机量仍很薄
已知的坑
本能力交付的是坐标,你拿到之后自己去点。 它另有直接交付 token 的形态,本接口不覆盖那一种。
官方文档目前极简:只有一页概览讲「加组件 → 用户完成挑战 → 拿 token → 后端验签」,getting-started / migrate 等子页 2026-08-30 实测全部返回 404。没有公开的 DOM 属性名、脚本 URL 或 token 字段名,上面那条资源域名判据是实测得到的,不是文档给的。
官方明确写「不使用 cookie、不存储终端用户个人数据」,所以别按 cookie 名去找它 —— 找资源域名和表单里那个 JWT 形式的隐藏字段。
坐标原点在图片左上角、单位是你提交那张图的像素;页面缩放过要按 clientWidth / naturalWidth 换算。
挑战与会话绑定:坐标点对了但会话已过期照样不通过 —— 别把挑战图缓存下来隔很久再用。
它属于「欧洲 privacy-first + 工作量证明」这一大类里的新面孔,这一类里各家的 DOM 与 token 完全不同,不要按同类推断参数名。
本能力交付的是坐标,你拿到之后自己去点。BotDeflector 另有直接交付 token 的形态,本接口不覆盖那一种
常见问题
BotDeflector 要传哪些参数?
必填 body,没有可选参数。请求里 type 传 botdeflector。
解出来的东西怎么用?
返回一组坐标点,取 solution.points。要点击的坐标
challenge.botdeflector.eu 要去页面的哪里找?
重点找 challenge.botdeflector.eu、api.botdeflector.eu、AccessDenied。本页「参数去页面哪里取」一节写了全部位置与取法,含可直接粘进控制台的一行命令。
怎么确认目标站用的就是 BotDeflector?
Friendly Captcha、ALTCHA、captcha.eu 等欧洲 privacy-first 验证码 —— 同样主打 GDPR 与工作量证明,但各是各家、DOM 与凭证字段完全不同;不能按「欧洲 + PoW」就当成同一个东西。
有什么容易踩的坑?
本能力交付的是坐标,你拿到之后自己去点。 它另有直接交付 token 的形态,本接口不覆盖那一种。
多少钱一次,失败扣不扣?
$2.36 / 1K 次。按成功计费 —— 没解出来一律退款,所以失败不花钱。账单按次记,标价按每千次是为了让量级读得出来。