字
字节笔记本
2026年5月3日
Cloudflare Turnstile - 智能验证服务
API中转
¥120
Cloudflare Turnstile 是一种隐私优先的 CAPTCHA 替代方案,可以在不显示烦人谜题的情况下验证用户是否为真人。它通过 JavaScript 挑战收集信号,自适应地判断用户身份,完全免费且无需 Cloudflare 代理。
核心特点
| 特点 | 说明 |
|---|---|
| 无 CAPTCHA 体验 | 用户无需解决视觉谜题,验证过程完全隐形或最小化 |
| 隐私优先 | 从不收集数据用于广告重定向 |
| 无需 Cloudflare 代理 | 可嵌入任何网站,无需通过 Cloudflare 网络路由流量 |
| 自适应挑战 | 根据风险级别自动选择合适的验证方式 |
| 无障碍访问 | 符合 WCAG 2.1 AA 标准 |
| SPA 支持 | 支持单页应用的预清除功能 |
三种控件类型
1. 非交互式 (Non-interactive)
- 完全隐形,用户无感知
- 适用于低风险场景
2. 托管式 (Managed)
- 检测到可疑机器人时显示复选框
- "I'm not a robot" 风格
- 平衡安全性和用户体验
3. 完全隐形 (Invisible)
- 完全后台运行
- 适用于高信任度场景
定价
| 计划 | 价格 | 适用场景 |
|---|---|---|
| 免费版 | $0/月 | 个人或爱好项目,非关键业务 |
| 企业版 | 定制价格 | 关键业务应用 |
免费版包含:
- 无限验证请求
- 所有控件类型
- 基础分析仪表板
- 标准支持
与 CAPTCHA 的对比
| 特性 | 传统 CAPTCHA | Cloudflare Turnstile |
|---|---|---|
| 用户体验 | 需解决视觉谜题,繁琐 | 隐形或最小化交互 |
| 隐私 | 收集数据用于广告 | 从不收集广告数据 |
| 速度 | 拖慢网页加载 | 不影响网页体验 |
| 无障碍 | 对视障用户不友好 | WCAG 2.1 AA 合规 |
| 集成 | 通常需要特定域名 | 可嵌入任何网站 |
集成方式
基本嵌入
html
<!-- 在 <head> 中 -->
<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>
<!-- 在表单中 -->
<div class="cf-turnstile" data-sitekey="YOUR_SITE_KEY"></div>JavaScript API
javascript
// 显式渲染
turnstile.render('#turnstile-container', {
sitekey: 'YOUR_SITE_KEY',
callback: function(token) {
console.log('Challenge Success', token);
},
});
// 验证响应
// 将 token 发送到服务器验证服务器端验证
bash
# 使用 Cloudflare API 验证 token
curl -X POST https://challenges.cloudflare.com/turnstile/v0/siteverify \
-H "Content-Type: application/json" \
-d '{
"secret": "YOUR_SECRET_KEY",
"response": "TOKEN_FROM_CLIENT"
}'响应示例:
json
{
"success": true,
"challenge_ts": "2026-02-15T00:00:00.000Z",
"hostname": "example.com",
"error-codes": [],
"action": "login",
"cdata": "session-id-123"
}使用场景
- 登录/注册表单 - 防止暴力破解和机器人注册
- 评论系统 - 防止垃圾评论
- 投票/调查 - 确保一人一票
- 结账流程 - 防止机器人抢购
- API 端点保护 - 防止滥用
- 内容提交 - 防止垃圾内容
最佳实践
1. 选择合适的控件类型
- 低风险页面(如联系表单)→ 非交互式
- 中等风险页面(如登录)→ 托管式
- 高风险页面(如支付)→ 完全隐形 + 额外验证
2. 错误处理
javascript
turnstile.render('#container', {
sitekey: 'YOUR_SITE_KEY',
'error-callback': function(code) {
console.error('Turnstile error:', code);
// 显示友好的错误信息
},
});3. 与 WAF 集成
- 可与 Cloudflare WAF 配合使用
- 根据 Turnstile 分数设置自定义规则
分析仪表板
- 挑战解决率 - 查看验证成功率
- 流量分析 - 了解机器人 vs 真人流量
- 错误分析 - 识别集成问题
同类工具对比
| 工具 | 特点 | 价格 |
|---|---|---|
| Turnstile | 隐私优先,无 CAPTCHA | 免费 |
| reCAPTCHA v3 | Google 服务,分数制 | 免费/企业版 |
| hCaptcha | 隐私友好,有收益模式 | 免费/付费 |
| Friendly Captcha | 欧盟 GDPR 合规 | 免费/付费 |
相关资源
分享: