# 本地拼图滑块验证码 SaaS 登录使用本地开源拼图滑块,数字图片与腾讯云验证码仍是服务端策略允许的模式。迁移 74 只扩展 SaaS 可选模式,不自动更改默认策略;小程序继续使用原图片模式,不能启用尚未发布的滑块协议。 生成接口返回 `mode: slide`、`captcha_id`、`expires_at_ms`,320×180 JPEG 主图、52×52 透明 PNG 拼块以及拼块初始 `thumb_x/thumb_y`。图像均为内嵌 data URL。主图有一个目标缺口和两个同形干扰缺口,拼块对应目标处的背景。坐标、背景和形状使用 `crypto/rand`;客户端不获得目标 X。 客户端将释放点转换为原图坐标,向同一入口的 `/captcha/verify` 提交 `{captcha_id,x,y}`,位置误差最多 3 像素。正确位置换取随机 32 字节 `captcha_ticket`,再通过既有密码登录或申请短信参数提交该凭证;图片答案和腾讯随机字符串不能替代本地凭证。 挑战与凭证总有效期仍为生成后 2 分钟,验证不会延期。会话、客户端和策略版本必须匹配;错误位置原子消费挑战,凭证只可消费一次。刷新会替换旧挑战,Lua 比较旧记录并保持原 TTL,避免延迟校验覆盖新挑战。Redis 中目标位置经过 AES-GCM 加密,凭证只存 HMAC,Origin、CSRF、会话检查及原手机号/IP/短信总量限制继续执行。 拼图是自部署的人机交互门槛,并不具备腾讯云完整的行为识别、设备信誉或风险模型;图像匹配程序仍可能解题。验证码不能替代短信限流或可信浏览器策略。增加验证码或验证尝试仍受会话及 IP 限流约束。最多同时渲染两个挑战,静态图片只解码一次,拥挤时返回 `CAPTCHA_BUSY`。 组件和图片来源、版本及 Apache-2.0/MIT 许可证见 `third_party/local-slide-captcha/NOTICE.md`。API 与 Web 分发镜像均携带完整通知及许可证,运行容器逐文件摘要已核对。 2026-09-30 已上线 API/Web `0.99.19-rc.local-slide1`、迁移 74 和策略 version=4(SaaS=slide、mini=image)。42 项隔离后端集成及 10 项 React 测试通过,API Linux 与前端构建通过;两个既有安全依赖补丁后扫描无应用可达报告。真实浏览器弹窗、换图、过期提示及取消已确认。没有自动解答真实验证码、发送真实短信或据此宣称账号登录成功。旧小程序兼容 API 保留;用户后续要求小程序只开放家庭端、只保留微信一键登录,运营使用网页,小程序发布状态另见其验收记录。