面向国内用户,Turnstile 和 reCAPTCHA 怎么选?reCAPTCHA 依赖 Google 脚本和 cookie,大陆网络下加载不稳定;Turnstile 不依赖 Google,不受此限制。可达性只是一个维度,识别难度、隐私、迁移成本同样重要,下面逐项拆解,并附识别代码示例。
该怎么选:不同场景下选 Turnstile 还是 reCAPTCHA
| 场景 | 更适合 | 原因 |
|---|---|---|
| 注重隐私 | Turnstile | 不做 Google 跨站跟踪 |
| 已在用 Cloudflare | Turnstile | 原生集成,省事 |
| 遗留系统迁移成本高 | reCAPTCHA v2 | 成熟稳定,文档齐全 |
| 追求零打扰体验 | reCAPTCHA v3 或 Turnstile | 都能无感验证 |
| 安全要求较高 | v2 + v3 组合 | 挑战 + 分数双重把关 |
| 非技术团队维护 | reCAPTCHA v2 | 复选框实现简单 |
识别难度与 CaptchaAI 实测耗时
差异来自挑战类型:Turnstile 与 v3 无图片识别,v2 更耗时。
Turnstile
- 识别耗时:<10 秒
- 成功率:高
- 参数:
sitekey、pageurl - 分数:不关注(通过/失败)
reCAPTCHA v2
- 识别耗时:<60 秒
- 成功率:高
- 参数:
sitekey、pageurl - 分数:不关注(通过/失败)
reCAPTCHA v3
- 识别耗时:<4 秒
- 成功率:高(受分数阈值影响)
- 参数:
sitekey、pageurl、action - 分数:需关注
以下数字基于公开资料与内部观测样本,仅供参考。实际结果会因运行环境、任务量和时间而不同,请在自有环境中测量。
Turnstile 与 reCAPTCHA:功能对比一览
| 特性 | Cloudflare Turnstile | reCAPTCHA v2 | reCAPTCHA v3 |
|---|---|---|---|
| 服务商 | Cloudflare | ||
| 用户交互 | 几乎没有(托管模式) | 复选框 + 图片挑战 | 无 |
| 返回结果 | token(通过/失败) | token(通过/失败) | 分数(0.0–1.0) |
| 图片挑战 | 没有 | 有 | 没有 |
| 检测方式 | 浏览器环境挑战 | 鼠标/键盘/cookie 行为 | 持续行为监控 |
| 隐私 | 不做跨站跟踪 | 使用 Google cookie | 使用 Google cookie |
| 免费额度 | 有 | 有 | 有 |
| 企业版 | 有(Cloudflare 付费计划) | 有(付费) | 有(付费) |
| 是否需要 CDN | 不需要(独立组件) | 不需要 | 不需要 |
检测原理有什么不同
Turnstile 检测
Turnstile 的核心是验证浏览器环境是否真实:
- JavaScript 执行挑战、WebAssembly 支持情况
- Private Access Token(Apple/Google 设备)
- Canvas/WebGL 渲染、挑战时序分析
reCAPTCHA 检测
reCAPTCHA 的核心是分析用户行为信号:
- 鼠标轨迹、键盘操作时序、滚动行为
- Google cookie(NID、SID)是否存在
- IP 信誉、浏览器指纹一致性
用 CaptchaAI API 识别 Turnstile 和 reCAPTCHA
拿到 sitekey 和目标页面 URL 后,三种请求方式基本一致,区别只在 method 参数。
Turnstile
resp = requests.get("https://ocr.captchaai.com/in.php", params={
"key": API_KEY, "method": "turnstile",
"sitekey": "0x4AAAAAAAD...", "pageurl": URL, "json": 1
})
reCAPTCHA v2
resp = requests.get("https://ocr.captchaai.com/in.php", params={
"key": API_KEY, "method": "userrecaptcha",
"googlekey": "6Le-wvkSAAAA...", "pageurl": URL, "json": 1
})
reCAPTCHA v3
resp = requests.get("https://ocr.captchaai.com/in.php", params={
"key": API_KEY, "method": "userrecaptcha", "version": "v3",
"googlekey": "6LfZil0UAAAA...", "action": "login", "pageurl": URL, "json": 1
})
轮询 res.php 取回 token 后提交表单,注意字段名:Turnstile 用 cf-turnstile-response,reCAPTCHA 系列用 g-recaptcha-response。
常见问题
Turnstile 和 reCAPTCHA,哪个更难被自动化识别?
CaptchaAI 都能稳定识别。v2 步骤多但判定明确;v3 靠分数阈值,能否通过取决于业务设定。Turnstile 速度通常比 v2 快,接近 v3。
国内网站接入 reCAPTCHA,会因 Google 不可达而出问题吗?
有风险,组件依赖 Google 脚本和 cookie,大陆网络下加载不稳定。国内用户为主时,建议先实测,或换成不依赖 Google 的 Turnstile。
从 reCAPTCHA 迁移到 Turnstile,前端要改很多代码吗?
不算多:拿 sitekey、加载 widget、换 token、提交表单,思路一致。差异在字段名——g-recaptcha-response 换成 cf-turnstile-response——后端接口需分别对接。
两者相比,哪个识别成本更低?
Turnstile 和 v3 通常更便宜,不涉及图片识别;v2 每次成本更高。CaptchaAI 按线程数计费(如 BASIC $15/月、5 线程),线程内无限次识别,不分类型加价。
Turnstile 只有用了 Cloudflare CDN 的网站才能接入吗?
不是,Turnstile 是独立组件,未接 CDN 也能嵌入;已在用 Cloudflare 时,控制台配置更顺手。