ALTCHA
ALTCHA 是 ALTCHA 的工作量证明(开源,MIT)。一个窄条组件,通常显示一个复选框和一条进度。浏览器在后台算一小段工作量证明,算完自动打勾。没有图片题。
接口规格
| 项目 | 值 |
|---|---|
| type | altcha |
| 必填参数 | 无 |
| 可选参数 | challengechallenge_urlwebsite_url |
| 返回 | 一个 token 字符串(solution.token) |
| 怎么用这个解 | 填回表单的 `altcha` 字段 |
| 价格 | $1.53 / 1K 次 —— 按成功计费,没解出来退款 |
| 厂商文档 | ALTCHA 官方文档 |
参数去页面哪里取
下面全部是可以直接照做的定位方法 —— DOM 属性名、JS 全局变量名、script 上的 query 参数。
没有必填参数(我们这条只要 type)。但你需要知道页面上长什么样才能确认它是 ALTCHA:
组件是一个自定义元素
<altcha-widget auto="off" challenge="https://api.example.com/challenge"
name="altcha" type="checkbox" workers="4"></altcha-widget>一行确认:!!document.querySelector('altcha-widget')
⚠⚠ 版本差异,这是最容易踩的一处
· v3:挑战地址在 `challenge` 属性里。
· v1 / v2:属性名是 `challengeurl` / challengejson(v3 文档里这两个名字已经不存在)。
看到哪个属性名就知道站点用的是哪一代 —— 照 v3 文档去找 challengeurl 会找不到。
回填字段
隐藏 input 的 name 由 `name` 属性决定,默认 `altcha`。站点可以改,也可以配成用 cookie 传 payload,所以回填前先看那个属性。
调用示例
一个端点解全部验证码类型 —— 换一种验证码只改 type 这一个字段。
curl -X POST https://api.everyinfra.com/api/v1/captcha \ -H "Authorization: Bearer omg_你的KEY" \ -H "Content-Type: application/json" \ -d '{"type":"altcha"}'
{ "solution": { "token": "…" }, "billing": { "charged": true, "credits": 110 }}
怎么确认目标站用的就是它
开源的工作量证明方案(许可证 MIT):浏览器算一段谜题,结果作为 payload 放进表单的隐藏 input,服务端验证。因为完全开源且可自托管,欧洲隐私敏感的站点用得多。
容易搞混的
与 Friendly Captcha 和 Anubis 最容易混,三者都是工作量证明。判据看 DOM:ALTCHA 是 <altcha-widget> 自定义元素;Friendly Captcha 是带 frc-captcha 类的 div(字段 frc-captcha-response);Anubis 是整站前面的网关、页面上有 #anubis_challenge 的 JSON script 标签。
常见部署场景
- 自托管、注重隐私的站点(整套开源,可以全部跑在自己域名下)
- 欧洲的中小站点与开源项目的表单
- 不愿引入任何第三方 JS 的场景
已知的坑
v3 的属性叫 `challenge`,v1/v2 叫 `challengeurl` —— 版本不同属性名不同,按一份文档去找另一版必然落空。
回填字段名可以被站点改掉:默认 altcha,但 name 属性一设就变;还有一种配置走 cookie 而不是隐藏 input。
严格 CSP 场景下站点会用 altcha/external 那个入口(不含内置 worker),页面结构略有不同。
整套 MIT 开源且常被自托管 —— 挑战地址可能在站点自己的域下,别按第三方域名去找。
challenge 与 challenge_url 至少传一个
它是自托管的工作量证明式验证码,常见于注重隐私的欧洲站点
常见问题
ALTCHA 要传哪些参数?
没有必填参数,type 传 altcha 即可。
解出来的东西怎么用?
返回一个 token 字符串,取 solution.token。填回表单的 altcha 字段
challengejson 要去页面的哪里找?
重点找 challengejson、challengeurl、altcha。本页「参数去页面哪里取」一节写了全部位置与取法,含可直接粘进控制台的一行命令。
怎么确认目标站用的就是 ALTCHA?
与 Friendly Captcha 和 Anubis 最容易混,三者都是工作量证明。判据看 DOM:ALTCHA 是 <altcha-widget> 自定义元素;Friendly Captcha 是带 frc-captcha 类的 div(字段 frc-captcha-response);Anubis 是整站前面的网关、页面上有 #anubis_challenge 的 JSON script 标签。
有什么容易踩的坑?
v3 的属性叫 `challenge`,v1/v2 叫 `challengeurl` —— 版本不同属性名不同,按一份文档去找另一版必然落空。
多少钱一次,失败扣不扣?
$1.53 / 1K 次。按成功计费 —— 没解出来一律退款,所以失败不花钱。账单按次记,标价按每千次是为了让量级读得出来。