--
当前发布状态
从 Manifest 与公开证明接口读取,保留真实核验结果。
选择你要检查的对象
三种入口共用同一份报告结构。先定位阻断上线的问题,再给出可以直接执行的修复动作。
粘贴接入代码
可同时放入 HTML、JavaScript 和服务端代码。请先删除真实 Secret,检查器不需要它的值。
智能核验 SDK 文件
先核验 SHA256;失败时自动读取声称版本的官方基线,定位代码差异并识别新增危险行为。全程在浏览器内完成,文件不会上传。
生成可上线的接入骨架
前端挂载、服务端二验和 CSP 一次生成,避免只完成“弹出验证码”却遗漏真正的业务放行边界。
选择版本策略,并看到差异
固定版本适合安全评审和 SRI;稳定入口适合自动接收兼容性与安全修复。
从文件,到公开可核验的证明链
不是只展示一个“安全”标签,而是把每一层证据和当前状态拆开呈现。
------需要深入时,再展开细节
固定版本、稳定入口与自托管怎么选?
经过安全评审的生产系统优先固定版本并启用 SRI;希望自动获得兼容修复时使用稳定入口;严格供应链或内网场景选择自托管,同时保留文件哈希核验。
为什么前端验证成功还不够?
前端环境可被用户控制。业务后端必须携带 App ID 和 App Secret 调用 second-verify 消费一次性 token,只有二验成功才能执行登录、注册、下单或发帖。
App Secret 应该放在哪里?
只存放在业务服务端的密钥管理或环境变量中,限制读取权限并支持轮换。不要写入 HTML、浏览器 JavaScript、移动端包、公开仓库或日志。
如何完成自托管审计?
下载固定版本,核对 Manifest 中 SHA256,将文件以不可变路径发布到自己的静态资源域名;部署后再次下载线上文件并计算哈希,确保传输和发布没有改变内容。
签名升级与业务回执
这是服务端能力升级,不是 SDK v121 发布。v120 及旧固定版本的文件字节、Manifest 和当前 SDK 版本信息保持不变。
浏览器只配置 App ID
App Secret 仅放可信服务端环境变量或密钥管理系统。当前 v120 公开模式不发送签名头;历史携带 secret 的客户端按应用兼容策略迁移,新前端接入不应复制该做法。
v2 HMAC 只在可信服务端生成
v2 canonical 包含协议标记、App ID、方法、路径、稳定 JSON 的 bodyHash、nonce 和毫秒时间戳,按换行连接后做 HMAC-SHA256。v2、hmac 或未知版本校验失败不回退 legacy。
兼容期限与应用迁移
既有应用默认兼容 legacy 至 2026-12-31T23:59:59.999Z(UTC);显式 legacy 和旧 v1 分别由 allowLegacy、allowV1Legacy 控制,legacyUntil 可按应用明确配置有限期限。二验默认允许 secret 鉴权,启用 serverHmac 后必须同时通过 HMAC。生成器中的旧最小模板不包含新业务幂等字段;新接入请使用完整协议示例。
二验成功回执不等于重复授权
新接入让 scene 与取题一致,并成对提交 businessRequestId(8..128 位 A-Z、a-z、0-9、下划线、点、冒号或连字符)和 businessDigest(SHA-256 十六进制)。同 key、digest、token、scene 和应用只能在原有效期内重试成功回执,返回 code=200、data.replayed=true;不同业务不可复用。签名网络重试使用新 nonce,业务 key 保持不变。
哪些请求消耗额度?
completed-attempt 按已完成的验证尝试计费一次,成功和完成的失败均按最终事件处理;取题、技术故障、pending 不计费,已完成事件及二验成功回执重试不重复扣费。客户端超时不能撤销服务端已提交的计费事件。
安卓资源签名与版本核验
安卓候选版采用独立签名清单。它与浏览器 SDK 的版本号、SRI 和存证记录分别管理,不代表新增了浏览器 SDK 版本。
签名验证什么?
AAR 内固定公钥验证清单的 RSA-SHA256 签名,再检查资源 SHA256、有效期、协议及顺序号。签名证明资源由对应密钥签发且内容一致,不证明代码不存在漏洞;本批安卓资源未宣称已经区块链存证。
自动更新与安全回退
稳定与灰度通道选择兼容 Web 资源,原生 AAR 随 App 发版,不加载远程 Dex。回退必须签发更高顺序号清单,不能直接降低版本序列;无效签名不使用旧缓存绕过。
当前验收范围
本版已完成构建和单元测试,旧版有 API35 合成链路记录,本版设备回归未完成;真实手机、厂商 WebView、每种验证方式及生产计费仍待验收。Android 8+ 是目标范围,不是全设备实测证明。
密钥和业务边界
签名私钥不在发行包中。App Secret 只放业务后端;客户端 VERIFIED 必须由后端二验并执行业务事务后才表示业务成功。