用途:Cloudflare Turnstile 用于为表单、登录/注册等场景添加机器人防护,是 CAPTCHA 的替代方案,也可从 reCAPTCHA 迁移。
主要能力:提供 Managed、Non-Interactive、Invisible 等组件模式;前端通过 api.js 渲染组件并生成隐藏字段 cf-turnstile-response;后端调用 Siteverify API 校验令牌,可校验 action、hostname、remoteip 等字段。
使用方式:在 Cloudflare 控制台创建组件,获取公开 sitekey 与私密 secret key;前端加载 https://challenges.cloudflare.com/turnstile/v0/api.js 并放置带 data-sitekey 的组件;后端以 POST 请求 https://challenges.cloudflare.com/turnstile/v0/siteverify 提交 secret 与 response 进行校验。React 可选用 @marsidev/react-turnstile。
限制与注意:必须进行服务端校验,不能只依赖客户端;secret key 只能保存在后端;令牌 5 分钟过期且单次使用;Siteverify 仅接受 POST;api.js 不可代理或缓存;localhost 需显式加入允许域名;测试可使用官方 dummy 密钥。资料还列出 CSP 配置、错误码及若干已知问题,具体细节以官方文档为准。