验证码解决什么
当请求频率超限、来源风险评分偏高,或者访问的是登录、注册、短信、导出这类高价值接口时,触发人机验证可以把自动化请求挡在外面。它提高的是攻击成本:不是让攻击变得不可能,而是让批量尝试变得不划算。
体验与合规的边界
验证码一旦全站启用,转化率与体验都会明显下降,移动端与无障碍访问也会受影响。合理做法是只对高风险接口与异常来源触发挑战,正常用户尽量无感,同时保留无法通过验证时的人工申诉通道。
基本信息
| 触发条件 | 频率超限、风险评分偏高、特定接口 |
|---|---|
| 常见形式 | 滑块、点选、无感验证 |
| 体验要求 | 正常用户尽量无感,异常来源必挑战 |
| 定位 | 提高攻击成本的缓解手段,不是访问控制 |
典型使用场景
- 登录接口被批量尝试撞库
- 注册与短信接口被脚本刷取
- 查询或导出接口被自动化爬取
- 活动期间出现异常流量峰值
- 某个来源网段反复触发风控规则
- 需要在不封禁正常用户的前提下降低自动化请求
配置要点
配置要点
# 1. 只对高风险接口与异常来源启用挑战
# 2. 验证通过后发放短期凭证,避免每次都挑战
# 3. 监控挑战通过率与异常来源分布,及时调整阈值
# 4. 保留人工申诉与客服通道,避免误伤正常用户
# 5. 挑战规则与限速策略配合,单靠挑战挡不住分布式来源触发场景与建议
| 场景 | 建议 |
|---|---|
| 登录与注册 | 高频失败或异常来源时触发挑战 |
| 短信与验证码类接口 | 按来源与频率严格限制,优先风控 |
| 数据导出与查询 | 结合账号权限与频率双重约束 |
| 全站默认挑战 | 不建议,体验与转化损失明显 |
验证码是缓解手段,不能替代限速与鉴权设计:接口本身缺少权限校验时,验证码只能推迟问题发生。
全站启用验证码会显著降低转化与体验,移动端与无障碍场景尤其明显,需要按接口精细控制。
挑战通过率是一个有用的观测指标:通过率突然升高,往往说明挑战机制已经被批量绕过。