Idea To Business / 免费试用会不会被刷爆,Turnstile 能保护到哪一步?← 返回专题

上线与运营 · 实践指南

免费试用会不会被刷爆,Turnstile 能保护到哪一步?

把人机验证放进服务端检查流程,同时控制身份、额度、并发和付费调用,验证拒绝路径。

本页目录
收藏与勾选保存在此浏览器。

直接回答

人机验证是降低自动滥用的一层措施,不能保证所有通过者都善意,也不能替代账号权限和费用控制。前端获得 token 后,后端必须向验证服务确认;只在页面放一个验证组件没有完成保护。Cloudflare 官方文档确认 Siteverify 是必要步骤,token 有效期为 5 分钟且只能验证一次。整理建议:围绕真正消耗资源的服务端入口建立保护,而不是仅在首页放组件或只限制浏览器按钮。

适用场景

  • 产品允许免费生成、匿名试用或批量注册
  • API 费用突然上升,却没有相应真实使用
  • 已加验证组件,想确认是否真的生效

一步一步做

列出会产生费用的入口

梳理注册、模型生成、上传、邮件和后台任务,记录每个入口消耗什么资源、谁可以调用。区分防自动提交与业务资格:即使真人通过验证,也不应能无限使用同一份免费额度。

配置前端和服务端验证

前端使用公开 Site Key 获得 token,随业务请求提交;私密 Secret Key 留在服务端,由服务端调用 Siteverify 并读取结果。校验通过之前不执行昂贵操作;配置缺失、请求失败或结果无效时不应默认当作通过。

处理 token 与页面状态

过期或重复使用的 token 会被拒绝,需要让用户重新完成验证并得到清晰提示。整理建议:按当前官方文档核对预期 hostname、action 等信息,避免把不属于当前操作的结果当作许可;也要检查加载失败时用户如何恢复。

叠加业务额度与资源限制

整理建议:在服务端验证身份与剩余额度,限制输入大小、同时任务数与请求频率,并监控费用异常。额度扣减必须避免并发请求同时通过同一剩余额度;重试应区分原任务与新任务,避免重复消耗。具体限制由成本和正常使用方式决定。

测试绕过界面的请求

在授权测试环境直接调用接口,分别测试无 token、伪造、过期、重复 token、无权限和额度不足。确认被拒绝时数据库和供应商没有发生付费操作,再验证正常用户可完成流程。仅看到绿色成功标识不构成验收。

案例拆解

假设示例:前端限制每天一次仍被消耗

页面在本地记下已生成一次并禁用按钮,但服务端接口只要收到文本就调用模型。其他请求可以不经过该按钮。修复重点是服务端资格、额度和必要的人机验证;浏览器限制只保留为界面反馈。随后用第二个请求验证后端拒绝,检查供应商调用数量没有增加,才能说明成本保护路径真正生效。

行动检查

可复制模板

免费调用保护验收

工作模板
入口:[接口与资源]
允许使用者:[匿名/登录/付费]
资格与额度:[规则、存储位置、并发处理]
人机验证:[前端 token→服务端 Siteverify→允许业务操作]
拒绝场景:[缺失/无效/过期/重复/额度不足]
成本边界:[输入、并发、频率和费用观察]
请证明拒绝请求没有触发上游付费操作,正常用户仍能完成任务。

易错点

  • 把“机器人过不去”理解成保证:这是风险降低措施,仍需业务与成本限制。
  • 只在注册时验证,生成接口无限开放:应保护真实资源入口。
  • 照搬“所有注册都必须加验证码”:是否采用及何时触发应结合风险、用户体验和其他控制。

官方参考

← 返回专题,继续查阅
© Rowan Huang

保持好奇,慢慢构建。