设备指纹_FAQ

顶象设备指纹FAQ

一、通用

  • 返回token长度有时候会不一致?

返回token分两种情况:长度size=40风控后台生成token,长度 size>40 本地生成token。两者均属于有效token,可正常使用在业务上。

  • 返回 token 为什么会不变?

设备在非风险环境下,token在SDK中会有本地缓存,一般时效为24个小时;设备在风险环境下,会请求后端获取最新token。

  • token和指纹的区别

指纹是指设备唯一标识,只存在于后端服务器;token是客户端和后端通讯产物,具有时效性,可以通过Server API获取token对应的设备指纹。

  • 什么是降级token

是指纹采集上报阶段,由于调用链路卡慢等原因,导致接口返回超时,指纹上报端会对将上报数据加密作为临时token称为降级token。web端、移动端集成支持降级token,小程序端不支持。
降级token长度较长,可正常传递后端,进行解析指纹。
降级状态是指本次降级,如果下次调用getToken()网络正常,发现上次是降级状态,会重新采集数据,提交到设备指纹服务器,获取正常的token。

  • 为什么会获取token为空?

移动端sdk或者web端集成设备指纹,在网络不好的情况下会生成降级token,即token的长度会很长,也可以解析出指纹的。首先获取不到token可以排查前端逻辑,是否获取捕获到降级token,并且传给后端进行校验。注意不可自定义token,否则会解析不到设备指纹。
小程序没有降级token逻辑,网络异常或接入错误会获取不到token。
若token为空,可排查以下
1.检查网络是否联通,是否能请求到服务
2.检查appid是否正确
3.检查是否请求错接口,web端-/c1,移动端-/m1,小程序端-/w1

  • 为什么有token没有解析到设备指纹?

首先确认是否是正确的指纹token。正常token长度是40位,可解析出指纹。
若token 长度为41位,则可能是以下原因造成
1.集成js错误,如私有化服务集成Saas的js
2.直接请求web端c1接口、wechat端w1接口拿的token,没有通过js进行采集上报
3.某些原因导致报文丢失或报文错误,服务端无法解密,可能由客户框架编译js导致或受设备环境影响。如遇到过get请求报文过长导致报文丢失,解决方案是前端支持post请求。 其他伪造token或者业务自定义token无法解析指纹。

  • 第一次获取设备指纹为空,第二次及其以后没有问题,什么原因?

指纹第一次请求是不采集数据请求,看请求头中有没有缓存,第一次返回为空会自动发起二次请求采集数据,token缓存在请求中。

二、Android

  • 集成SDK后,运行闪退?

检查assets文件是否集成,混淆配置是否正确。 如日志显示:I/libjdi sdk init cache failed,如有请检查 SDK的assets文件是否集成。

  • 集成sdk后,退出app会卡死?

直接使用 android.os.Process.killProcess(android.os.Process.myPid()) 方式退出app会卡死。
需要先关闭所有的activity,才能执行 android.os.Process.killProcess(android.os.Process.myPid())。

  • http地址无法访问,logcat报错Cleartext HTTP traffic to xxx not permitted

请在AndroidManifest的Application中新加一句: android:usesCleartextTraffic="true"

  • 私有化客户,token默认不想走缓存。可以配置:

params.put("PRIVATE_CLEAR_TOKEN", "clear");

三、iOS

  • 上架有报 unsupported architectures [x86_64, i386]的相应提示的问题,如下图

请配置下相应的上架脚本,接入脚本详见接入文档的“配置打包脚本“:
  • SDK接入pdf版本 脚本复制存在错误问题

请使用网页版本 脚本处理 ,Build Phases 里 Run Script 请放置在 Copy Files后面运行

  • 新版xcode接入risk sdk报Building for iOS Simulator, but the linked and embedded framework 'DXRisk.framework' was built for iOS + iOS Simulator.

修改项目配置里面的Validate Workspace为Yes后,重新编译 20201217200220312.png

四、小程序

  • 小程序端,地理位置授权可以关闭吗?

可以的,小程序版本支持初始化的时候配置 gps: false 参数关闭位置授权。

  • 小程序端,能生成降级token吗?

小程序在网络错误、appid错误及请求接口错误(web端-/c1,移动端-/m1,小程序端-/w1)的情况下,会获取不到token,没有降级token。移动端、web端支持降级token。

五、版本更新记录

1.Android版本更新记录

v6.1.6r 2022.06.02

  • 加强了注入检测
  • 解决attachCurrentThread问题
  • saas网络报错问题

v6.1.4r 2022.04.04

  • 加强了注入检测
  • 加强了模拟器检测
  • 加强了 root 检测
  • 加强了 virual app 检测

v6.1.1r 2021.12.16

  • 新增检测项
  • 性能优化
  • 已知问题修复

v6.0.5r 2021.09.01

  • 修复了Android11兼容性问题
  • 修复了小米手机兼容性问题
  • 指纹标识增加

v6.0.0r 2021.07.09

  • 极大增强了模拟器检测能力
  • 增强了多开检测能力
  • 指纹稳定性增加
  • 解决已知bug

v5.9.3r 2021.03.30

  • 解决android10机型偶现arraynull的crash问题
  • 解决偶现anr问题

v5.7.7

  • 添加越狱检测和采集项

v5.6.0

  • 完善指纹唯一性功能
  • 新增可识别31项篡改信息
  • 修复漏扫工具中检测的危险项

v5.5.6

  • 兼容华为Q系统

v5.5.5

  • 优化代码防护功能

v5.5.4

  • 优化代码防护功能

v5.5.3

  • 修复部分机型误判模拟器bug
  • 修复部分机型兼容性bug

v5.5.2

  • 新增 DXRisk.KEY_DELAY_MS_TIME 可自定义超时时间

v5.5.1

  • 私有化配置参数改为DXRisk.KEY_URL
  • 修复部分三星机型兼容性问题

v5.5.0

  • 新增多AppId同时获取token功能

v5.4.0

  • 完善ip采集,基站采集等功能

v5.3.3

  • 修复若干个bug

v5.3.2

  • 新增inject具体框架上报
  • 修复若干个bug

v5.3.0

  • 新增新字段上报
  • 优化采集项性能

v5.2.3

  • 完善xposed检测功能
  • 加强代码防护能力
  • 修复bug:采集字段时,会请求打开WLAN的bug

v5.2.1

  • DXRisk新增CONFIG_BACKUP_APPID key,SDK调用可指定backup appid

v5.2.0

  • 加强代码混淆等安全性
  • 屏蔽获取手机号功能

v5.0.8

  • 添加红手指检测,检测为模拟器

v5.0.6

  • 混淆参数从strong改为normal,arm平台下体积减到1.1M。修复了读取db

2.IOS版本更新记录

v6.1.4r 2022.04.04

  • 增强唯一性和稳定性
  • 增加了检测项

v6.0.8r 2021.12.10

  • 增强唯一性和稳定性
  • 性能优化
  • 修复了已知bug

v6.0.0r 2021.07.09

  • 修复了已知bug
  • 指纹稳定性增加
  • 适配最新iOS版本

v5.9.3r 2021.03.01

  • 修改了打包后的 infoplist 里的 version

v5.5.3

  • 解决加密库与客户使用库符号冲突问题
  • 优化采集速度

v5.5.1

  • 新增自定义超时时间

v5.5.0

  • 新增用户自定义参数
  • 支持app内多appId同时采集
  • 增强iOS恶意环境识别方法
  • 增强iOS设备识别维度

加入社群

扫码进群领
【业务安全】资料礼包

在线咨询
400-878-6123