出海建站必备:好用免费的人机验证方案 Cloudflare Turnstile
直接暴露在公网的功能,可能被脚本批量调用。轻则收到垃圾提交,重则被刷注册、撞库,连带消耗邮件、试用额度。

直接暴露在公网的功能,可能被脚本批量调用。轻则收到垃圾提交,重则被刷注册、撞库,连带消耗邮件、试用额度。
Turnstile 人机验证方案推荐给大家。接入不复杂,免费版对大多数出海产品够用。
Cloudflare Turnstile 是什么
Cloudflare Turnstile 是人机验证服务,防机器批量操作的。
传统验证码经常要求用户识别红绿灯、公交车或扭曲字符。Turnstile 会先在浏览器里运行一些非交互式检测,结合浏览器环境和访问行为等信号判断风险。
低风险访客通常可以直接通过,只有遇到可疑流量时,才可能需要额外交互。
还有一点很实用,Turnstile 可以独立使用。网站不需要托管在 Cloudflare,也不要求流量经过 Cloudflare CDN,只要前后端能够完成小组件加载和 Token 校验就可以接入。
为什么出海产品需要这道验证
公开表单是网站里最容易被自动化脚本利用的入口。注册接口可能被用来批量创建账号,登录接口可能遇到撞库和暴力尝试。
如果产品还提供免费试用、生成次数或新用户额度,批量注册会直接变成成本问题。即使攻击者没有进入系统,只要持续调用邮件、短信或模型接口,也会消耗真实资源。
Turnstile 先挡掉一部分自动化提交,后端再配合接口限流、登录失败次数限制和业务规则处理剩余风险。
这里要注意,Turnstile 不是完整的反滥用系统。Cloudflare 官方也建议把它和 WAF、Bot Management 或限流规则配合使用。
Turnstile 负责识别表单提交中的可疑自动化,限流负责处理高频请求和绕过前端、直接请求接口的流量,两者解决的问题并不完全相同。
在 Cloudflare 中创建 Turnstile 小组件
创建过程很简单。打开 Cloudflare Dashboard,在左侧 Quick search 中搜索 Turnstile,进入 Turnstile 页面。
进入页面后,点击“手动添加小组件”。
Turnstile 页面中的“手动添加小组件”入口
小组件名称建议按用途或环境填写,比如 Product Login Production。这样以后同时维护开发、测试和生产环境时,不容易拿错配置。
Hostname 只填写网站主机名,例如:
textexample.com
这里不要带 https://,不要填写页面路径。开发、测试和生产环境最好使用不同的小组件和密钥,避免生产配置被带进本地代码或测试日志。
Widget Mode 选择 Managed。这是 Cloudflare 官方推荐的模式,它会根据风险信号决定是否需要访客交互。大部分正常访客可以在不操作验证码的情况下完成验证,高风险访问才会看到额外质询。
如果当前只是给注册或登录表单增加验证,Pre-clearance 可以先保持关闭。这个选项主要用于让 Turnstile 和 Cloudflare 的 WAF 挑战状态联动。
填写小组件名称、Hostname,并选择 Managed 模式
创建完成后,Cloudflare 会给出两项配置:
- Site Key:前端加载小组件时使用,可以公开。
- Secret Key:后端调用 Siteverify API 时使用,必须放在服务端环境变量或 Secret 中,不能写入前端代码,也不要提交到 Git 仓库。
创建完成后的 Site Key 与 Secret Key 页面,密钥已经遮挡
拿到密钥只完成了 Cloudflare 后台的配置。应用侧还需要在表单中嵌入小组件,并在用户提交表单时把 Turnstile Token 一起交给后端。
具体的就交给AI去coding吧。
为什么我会推荐 Turnstile
第一是免费版很够用。按照 Cloudflare 当前的方案说明,免费账户最多可以创建 20 个小组件,每个小组件可以配置 10 个 Hostname,并且验证请求次数不限。
对于个人网站、中小型产品和多数生产应用,这个额度已经覆盖了常见场景。
第二是对正常用户的打扰比较小。Managed 模式会自己决定验证强度,很多访问不会看到传统验证码里的选图和文字识别。
对于注册和登录这类关键转化页面,少一步不必要的操作就少一部分流失。
第三是接入边界清楚。前端使用 Site Key 生成 Token,后端使用 Secret Key 调用 Siteverify,验证通过后再处理业务。
它不绑定 Cloudflare CDN,也不要求把整站迁移到 Cloudflare,放进现有技术栈通常不会牵动太多基础设施。
最后是上线后的状态可观察。Cloudflare 后台可以查看小组件的挑战量、通过情况以及不同 Hostname、国家、浏览器等维度的数据。接入后如果失败率异常升高,可以继续判断是机器人流量变多,还是域名、前端加载或后端校验配置出了问题。
对刚上线的出海产品来说,Turnstile 是一项投入很小、复用性很高的前置配置。它不能代替完整的安全策略,但很适合先给公开表单加一道基础防线。