名词解释
以下是「行为验证」产品中出现频繁的技术名词相关说明。
id
验证公钥。32位字符串, 验证码的唯一标识, 对公众可见, 用以区分不同页面的验证模块。ID在极验后台创建获得。
请在每个验证场景部署不同的验证ID。
2017年03月27日后在极验管理后台生成的ID均为3.0属性,生成之后会有明显的标识区分2.0。其中极验3.0的ID必须同3.0版本的SDK搭配使用(此文档中提供的SDK均针对3.0版本撰写),否则在请求我们接口时会返回错误。如果坚持使用极验2.0的ID,请联系您的商务。
key
验证私钥。32位字符串, 与验证码公钥的唯一对应, 在后台云验证需要此私钥来进行数据加密, 保障验证安全。在极验后台创建ID后会生成相应的KEY,请网站主妥善保管注册的私钥。
challenge
验证事件流水号, 针对单次验证事件的唯一标示。用于保证单次验证事件的唯一性, 防止重放。此流水号通过部署的SDK从极验的服务器上动态注册获得, 且每条的有效时间约为10分钟, 超过10分钟则该challenge将会作废。
注意:滑动验证的challenge会比初始下发的challenge在末尾多两位随机数。
validate
ajax接口返回的校验号码 ,用于标记是否通过当次验证,如果失败或者封禁则没有这个字段。
seccode
seccode为二次校验的凭证,由validate拼凑字符串获得。
forbidden
验证提交后返回的结果之一, 此类结果说明提交的验证数据无法通过极验安全云的计算判定,即本次校验未通过。
user_id
user_id用于提供进阶数据分析服务,通过上传user_id作为用户的唯一标识,确定用户唯一性,后续将用户关联到各个验证事件中,并在数据分析服务中为客户标记可疑账户,将风险请求关联到相关账户提供给客户。该参数通过后端SDK向极验提供, 可在api1 或 api2 接口传入;如担心用户信息风险, 可以先将user_id预处理(如哈希处理)后再提供。
bypass
什么是bypass?即宕机模式,在突发和不可避免的情况下,客户的服务器和极验的服务器可能会发生无法连接的情况,此时将会启动宕机模式。请用户在完成部署之后详细检查bypass模式是否生效。
进入宕机模式该做什么?宕机模式是为了在突发情况下保证客户的业务正常运转,所以进入宕机模式后,需要客户在本地排查原因,并及时和极验官方联系,一起排查解决。进入宕机模式表示极验服务暂时不可用。见bypass流程
bypass该如何部署使用?
- 在sdk的demo中,将通过轮询机制获取的bypass状态存入数据库中(demo示例中使用的是redis,可自行设计存储架构)。当客户端向SDK服务器发起请求时,从数据库中取出状态标识字段,根据状态标识字段来决定后续向极验发起请求还是进入宕机模式不与极验发生任何交互。
- 当实际部署环境无法满足bypass状态标识字段存储条件时,可以在sdk每次向极验发送请求之前,先向极验监控接口发送请求获取当前验证服务的可用性,再根据验证服务的可用性来判断后续将向极验发起请求还是进入宕机模式不与极验发生任何交互。
- 当获取到监控接口返回的状态为fail时,可以直接放弃加载验证码,保证原有的业务流程不被阻塞。
API1
API1用于验证开始时获取challenge,并在网站主服务器端利用key对challenge进行加密,防止第三方绕过客户服务端获取challenge。
API2
API2用于验证完成后,向极验云服务发起二次验证,确保该次验证结果不是伪造的,并且保证本次验证使用的challenge只能被二次验证一次。如果API1存储的极验云服务器为不可用状态,API2中的二次验证也会在网站主服务器本地进行。请在部署完成后详细检查API2是否通畅
。
fullpage
fullpage阶段即一点即过阶段,可以认为是验证的预判定阶段,用户点击按钮后,会上传用户的轨迹和一些环境信息等到极验云服务器,极验云服务器判定当前验证的安全等级,从而决定是下发进一步的验证形式还是给出通过、不通过的验证结论。
二次验证
客户操作完验证码,并且极验云服务器完成验证判定后,客户端需要向网站主服务器发送API2请求,API2背后会向极验云服务器查询本次验证的结果,并且将本次验证的challenge设置为失效状态,避免challenge被二次使用。这个请求过程即为二次验证过程,目的是确保验证结果是真实的从极验云服务器获取的,避免结果被篡改。