人机验证与挑战
人机验证与挑战:站内验证的几种方式、通行凭证绑定什么,以及接入腾讯云验证码、极验、Turnstile、reCAPTCHA v3 的配置项。
作用
挑战策略让访客先通过一次验证,节点发给他一个通行凭证,凭证有效期内的请求直接放行。验证由节点完成,或交给第三方验证服务。
使用场景
- CC 规则命中后,用验证代替直接拦截,让真人访客仍能访问。
- 登录、注册、下单等页面前加一道验证。
- 面向不同地区的访客选择不同的验证服务。
在哪里配置
控制台:CC 规则页的“挑战策略”页签,为网站新建挑战策略,保存后点“发布到边缘”。规则里的动作选“挑战”或“人机验证”即可引用。
验证方式
| 方式 | 说明 |
|---|---|
| 延迟验证 | 等待最短延迟后自动通过 |
| 点击验证 | 访客点击后通过 |
| 滑块验证 | 访客拖动滑块后通过 |
| 验证码 | 访客输入验证码 |
| 外部验证 | 由腾讯云验证码、极验 v4、Cloudflare Turnstile 或 Google reCAPTCHA v3 判断 |
前四种由浏览器完成一次工作量证明。滑块验证和验证码页面提供“改用等待验证”,等待约 5 秒并完成工作量证明,供读屏用户使用。
配置项
| 配置项 | 范围 | 说明 |
|---|---|---|
| 优先级 | 1 到 1000000 | 同一网站有多条策略时的顺序 |
| 最短延迟 | 5 到 10 秒 | 仅延迟验证 |
| 挑战有效期 | 10 到 300 秒 | 验证页打开后可完成验证的时间 |
| 通行有效期 | 1 到 3600 秒 | 通过后免验证的时间 |
| 时钟偏差 | 0 到 30 秒 | 允许的时间偏差 |
| 失败窗口、窗口内失败上限 | 1 到 3600 秒、1 到 20 次 | 窗口内失败次数超过上限的访客会被临时拦截 |
| IP 绑定 | 不绑定、仅 IP、仅 User-Agent、IP 加 User-Agent | 凭证绑定的内容,换了绑定项需要重新验证 |
| 工作量证明难度 | 12 到 24,默认 18 | 浏览器要算的哈希次数是 2 的难度次方,每加 1 翻倍 |
| 绕过路径 | 最多 32 条 | 每行一条,如 prefix /health/,这些路径不验证 |
外部验证
选“外部验证”后增加一节:
| 配置项 | 默认值 | 说明 |
|---|---|---|
| 外部提供商 | 无 | 腾讯云验证码、极验 v4、Cloudflare Turnstile、Google reCAPTCHA v3 |
| Site key / App ID | 无 | 提供商控制台里的应用标识 |
| Secret | 无 | 至少 16 个字符;保存后显示“已配置”,留空表示不修改 |
| 分数阈值 | 0.5 | 仅 reCAPTCHA v3,0.1 到 0.9,低于该分数不通过 |
| 提供方不可用时 | 改用站内验证(点击加计算) | 另一个选项是暂停访问,稍后重试 |
在提供商控制台把网站域名加入允许的域名,否则验证组件会报错。换了提供方后需要重新填写 Site key 和 Secret。凭据保存后,点“发布到边缘”才下发到节点。
常见问题
保存后验证组件报错
先确认域名已加入提供商允许的域名,再确认 Site key 与 Secret 属于同一个应用。
凭据保存失败
策略已经保存,页面会出现“重试保存凭据”,检查后重试即可。
内置验证和外部验证怎么选
内置验证由节点完成,不依赖第三方。外部验证由所选服务判断,防护强度取决于该服务,不使用节点的工作量证明。