顶象滑块验证码实战:多维度识别+轨迹加密
解析顶象验证码s方案:基于OpenCV多策略识别+nodejs加密轨迹,突破c参数动态响应难题,实现无感点选与安全接入。
背景介绍
顶象(dingxiang-inc)是国内主流人机验证方案提供商,本文以滑动拼图验证码为研究对象,分析其前端安全机制。主要涉及获取c参数、加载接口还原背景图、OpenCV多策略识别缺口坐标、Node.js生成ac加密轨迹,实现无缝对接。
整体流程图
从获取c参数到验证接口完成,涉及加载接口响应获取sid、p1、p2、y坐标,下载背景图与滑块图,解密列块顺序,OpenCV多策略融合识别缺口x坐标,调用SDK生成ac加密轨迹。验证接口需原样携带sid、aid、x、y、ac、c等参数,服务端返回success状态。
抓包分析
3.1 c参数获取接口(c1):GET https://constid.dingxiang-inc.com/udid/c1,需携带aid(客户端生成,格式dx-{时间戳ms}-{8位随机数}-{实例序号}),每次请求必须刷新重新生成。关键参数:ak(业务方配置,前端JS提取)、jsv(SDK版本,固定值)、c(动态凭证,服务端返回)、const_id(可选)。工具:src/index.js实现抓包分析,输出c值,成功返回request结果,失败时回退至最近有效抓包值,建议实现自动重试。3.2 加载接口(load):GET https://cap.dingxiang-inc.com/api/a,携带aid(客户端生成,格式同c1,每次刷新重新生成)、ak(业务方配置)、c(c1返回动态凭证)、sid(加载接口返回,首次为空)、w(固定值380)、h(固定值165)、jsv(SDK版本)。接口地址:constid.dingxiang-inc.com/udid/c1。验证接口(verify):POST https://cap.dingxiang-inc.com/api/v1,需携带sid(加载接口返回)、aid(同上)、x(OpenCV识别+换算)、y(滑块纵坐标)、ac(Node.js生成)、c(c1返回)。工具:src/verification.js。输出响应示例:{"success": true, "token": "xxxx...", "msg": null, "retry\