传统图片验证码、拼图验证码一直是开发者和用户共同的痛点:用户体验差、容易被 OCR 识别破解,还存在隐私争议。Cloudflare 推出的 Turnstile,主打无感人机验证,用来替代 CAPTCHA,个人与小项目可以免费接入,不需要网站接入 Cloudflare CDN 也能独立使用,适合登录、注册、表单提交、评论防刷等场景Cloudflare。
一、工作原理
Turnstile 的核心思路是在浏览器前端执行轻量质询,通过算力证明、浏览器环境探测、用户行为特征等信号综合判断访问者是人还是机器人,而不是一上来就让用户选图。
完整流程:
- 页面嵌入 Turnstile 前端组件,浏览器自动执行验证逻辑,生成一次性
token; - 表单提交时,前端携带这个 token 一起发给后端;
- 后端必须调用 Cloudflare Siteverify API,传入密钥 + token 做二次校验;
- 校验返回成功,才放行业务请求;校验失败直接拦截。
重要提醒:只嵌入前端组件没有防护效果,后端校验是必不可少的一环。
二、三种运行模式,按需选择
Turnstile 提供三种工作模式,适配不同业务的风控需求:
- Managed(托管模式|推荐默认) 风险低时静默自动放行,用户完全无感知;只有风险较高时,才弹出简单勾选框,由 Cloudflare 自动决策交互时机。大部分网站表单、登录页首选。
- Non-interactive(非交互模式) 全程不会弹出勾选框,全部后台静默验证。一旦风险判定为异常,直接拦截请求,适合不希望打断用户、对拦截容忍度高的场景。
- Invisible(完全隐藏模式) 页面上看不到任何验证组件,无 UI 展示,后台悄悄完成验证,适合需要完全无感、不想页面出现任何验证元素的业务。
三、核心优势
- ✅ 免费可用:免费额度足够个人站点、中小流量项目使用;高并发企业业务可升级企业版;
- ✅ 隐私友好:不会收集用户数据用于广告追踪;
- ✅ 不强制接入 CF CDN:独立部署,自有服务器、私有站点、多云环境都能接入;
- ✅ 生态联动:可搭配 Cloudflare WAF、机器人防护体系一起使用,提升整体风控能力;
- ✅ 体验更好:绝大多数正常用户不需要手动点选验证码,降低表单流失率。
四、最简接入代码示例
前端 HTML 嵌入
<script src="https://challenges.cloudflare.com/turnstile/v0/sitekey.js" async defer></script>
<form method="post" action="/login">
<input type="text" name="username" placeholder="账号">
<input type="password" name="password" placeholder="密码">
<!-- 替换为你在Cloudflare后台拿到的 sitekey -->
<div class="cf-turnstile" data-sitekey="你的SITEKEY"></div>
<button type="submit">登录</button>
</form>
后端校验接口
校验地址固定:
https://challenges.cloudflare.com/turnstile/v0/siteverify
POST 请求,提交参数:
secret:后台密钥,严禁前端泄露response:前端组件返回的 tokenremoteip(可选):访客真实 IP,辅助风控
Node.js 简易校验示例:
async function verifyTurnstile(token, secretKey) {
const res = await fetch("https://challenges.cloudflare.com/turnstile/v0/siteverify", {
method: "POST",
body: new URLSearchParams({
secret: secretKey,
response: token
})
});
const data = await res.json();
return data.success;
}
五、踩坑与局限性
- 国内访问稳定性问题:验证脚本域名
challenges.cloudflare.com在国内访问容易加载缓慢、超时,访问量大的国内站点需要考虑代理加速方案; - 自动化脚本容易被拦截:Playwright、Selenium 等爬虫、自动化框架默认很容易触发风控拦截,自动化场景需要额外做环境伪装;
- 免费版存在额度上限,高频提交、高并发业务需要提前评估配额;
- 测试时 Cloudflare 提供专用测试 Sitekey,方便本地开发调试,不会真实计入额度。
六、适合与不适合场景
✅ 适合:网站登录注册、留言评论、联系表单、API 提交防刷、内部工具表单; ❌ 不太适合:纯国内高并发业务(无代理加速时加载不稳定)、强自动化测试流程。
小结
如果你还在用传统图片验证码,想改善用户体验、同时低成本抵御机器人和垃圾提交,Turnstile 是非常值得优先尝试的方案。接入成本低、文档完善,托管模式开箱即用,只需要注意后端校验不能省略,以及国内环境下的加载加速问题。
正文完
可以使用微信扫码关注公众号(ID:xzluomor)