仅为合成反馈状态练习。不创建真实挑战、token、密钥、Siteverify请求或询盘,也不能验证真人或保护接口。
验证与接收状态分开
采购带防护的询盘表单时,挑战显示成功,不证明服务器接受验证,也不证明接收系统收到询盘。先约定过期、重复或暂时验证不了时用户看到什么,以及虚构草稿是否还在。
较早的一则WordPress站长讨论描述过界面显示成功、表单仍验证失败的情况。它只是历史问题来源,不是当前诊断,也不建议停用防护;这里不采纳帖中的换插件或换密钥建议。
已填写的反馈约定
只使用Demo User与chris@example.test。下方验证标签是输入的模拟结果,不是Cloudflare回包。草稿仅留在教学模型内存,不实现浏览器存储或服务器提交。
| 模拟验证 | 接收端记录 | 模型结果 |
|---|---|---|
| 过期或重复 | 未尝试 | 重新验证,保留草稿,不声称收到 |
| 暂不可用 | 未尝试 | 保留草稿等待,不默认成功 |
| 通过 | 未尝试 | 接收待定,不是询盘成功 |
| 通过 | 失败 | 本模型约定新提交先取得新验证 |
| 通过 | 已接收 | 仅演示接收,不是投递或咨询 |
| 过期 | 却声称已接收 | 记录矛盾,阻止继续 |
下载离线模型及10项测试,用Node 22.13或更新版本运行node turnstile-retry-model.mjs,预期是10项测试通过。模块导出next()供检查虚构状态,不是Turnstile实现。
官方文档证明到哪里
2026年10月15日核验的Cloudflare服务端验证指引要求服务端校验,token仅可使用一次、有效期五分钟;客户端错误指引说明错误回调及重置行为。客户端成功提示不能代替服务端验证。
模型不测token年龄、不生成或解析token、不做密码学验证,也不调用Siteverify。输入标签不是证据,不能接入生产认证或防垃圾路径。实际集成仍须按现行厂商规则服务端校验并处理真实响应;本资源不授权改密钥、允许主机或安全设置。
重试约定不能放宽防护
- 明确过期、重复、暂不可用的提示,未知验证结果绝不能变成已接收询盘。
- 按批准的隐私设计保留草稿;不记录密钥,也不悄悄长期保存客户资料。
- 本教学约定中,接收失败后的新提交需新验证。真实服务端可能有独立审查的重试/幂等方案,模型未实现,不能照抄成通用后端规则。
- 验证通过、接收端接受与真实投递分开留证;厂商验证的重试标识本身,不等于业务询盘去重。
真实集成只在授权环境按厂商测试方式验收。不绕过挑战、不停用防护、不编造通过结果。可另用双语表单验收演示核可见标签和错误焦点。
网站供应商可据此讨论反馈与安全重试,但它不证明拦截率、无障碍合规、投递成功、转化改善或真实客户咨询。