关于安全:设备指纹系列后端篇

36次阅读

共计 2999 个字符,预计需要花费 8 分钟才能阅读完成。

根底篇请看:设施指纹系列 – 根底篇

前段篇请看:设施指纹系列 – 前端篇

上接前文,咱们持续来说设施指纹的后端接入形式。

————————————– 我是分割线 —————————————-

接口详细描述:  依据 token,appId,sign 三个参数取得设施信息

1.SDK 接入办法阐明

1.1 Java SDK 接入

  1. 包的引入
<dependency>
    <groupId>com.dingxiang-inc</groupId>
    <artifactId>ctu-client-sdk</artifactId>
    <version>2.6</version>
</dependency>
  1. Java 应用示例
public class ConstantIdDemo {
    // 顶象控制台,设施指纹菜单利用治理外面获取
    private static String appId = "0091a3xxxxxxxxxx557fac67b2f5afb";
    private static String appSecret = "e38dxxxxxxxxx6807c9e1edebaa2836";

    public static void main(String[] args) throws IOException {
        // 填写设施指纹域名或者 url 如:http://127.0.0.1:8080
        CtuConstidClient client = new CtuConstidClient("https://constid.dingxiang-inc.com", appId, appSecret);
        // 设施指纹
        String result = client.getDeviceInfo("62c5013cel9o4xxxxxxxxxtTtKW5BwWtQq9u1f1");
         System.out.println(JSON.toJSON(result));
    }
}   

1.2 PHP SDK 接入

点击下载 SDK

应用示例

class Demo {

    // 依据理论状况填写
    const appKey = "你的 AppID";

    // 依据理论状况填写
    const appSecret = "你的 AppSecret";

    // 依据理论状况填写
    const token = "SDK 外面获取到的 token";
}

// 依据 token 获取设施详细信息工具类
$requestHandle = new DeviceFingerprintHandle();
// 设置申请超时工夫。因为存在设施指纹降级和网络抖动的状况,默认 2 秒。能够依据理论状况调整
// $requestHandle->setTimeout(2);

// 填写设施指纹域名或者 url 入:http://127.0.0.1:9090
$responseData = $requestHandle->getDeviceInfo("https://constid.dingxiang-inc.com/udid/api/getDeviceInfo",
    Demo::appKey, Demo::appSecret, Demo::token);
$result = json_decode($responseData, true);

// 申请状态码。非 200 示意没有获取到设施明细信息
if ($result['stateCode'] == 200) 
    echo "设施明细信息如下::" . json_encode($result['data'], true);
else 
    echo $result['message'];

1.3 NodeJS SDK 接入

npm i dx-const-id-sdk --save

const SDK = require('dx-const-id-sdk')

const sdk = new CaptchaSDK({
  appId: '您的 appId',
  appSecret: '您的 appSecret'
})

sdk.getDeviceInfo(token).then((data) => {console.log(data)
}).catch(err => {console.log('获取设施信息失败')
})

2.HTTP 接口接入办法

2.1 申请参数

字段 类型 形容
appId String 以后利用的标识
sign String sign = MD5(appSecret + token + appSecret),AppSecret 为 appId 对应的密钥
token String 用户前端获取的 token

2.2 胜利响应

字段 类型 形容
stateCode int 状态码
message String 状态形容
data Json 返回设施信息及设施危险检测数据
{
    "stateCode": 200,
    "message": "申请响应胜利",
    "data": {
        "hardId": "22e38229a7eda501c58bf3ddee1a340a",
        ......
    }
}

2.3 谬误响应

字段 类型 形容
stateCode int 状态码
message String 状态形容
data Json 异样时数据为空
{
    "stateCode": -10002,
    "message": "签名为空或验证失败",
    "data": null
}
错误码 形容
-10001 appId 不存在或曾经过期
-10002 签名为空或验证失败
-10003 token 为空或没有对应的设施信息
-10004 token 曾经过期
-10005 服务器外部异样
-10006 证书曾经生效
-10007 服务器限流

3. HTTP 接口返回参数明细阐明

3.1 收费用户

字段名 字段形容 阐明
token 设施 token 默认返回
hardId 设施指纹 默认返回
3.1.1 web 端返回后果
字段名 字段形容 阐明
token 设施 token 默认返回
hardId 设施指纹 默认返回

3.2 免费用户

3.2.1 挪动端返回后果(局部示例,更多返回字段请分割售后反对获取)
字段名 字段形容 阐明
token 设施 token 默认返回
deviceType 设施类型 默认返回
hardId 设施指纹 默认返回
producter 生产厂商 默认返回
macAddress mac 地址 默认返回
isEmulator 模拟器运行 默认返回
isRoot 是否 root 默认返回
isMultirun 是否多开 默认返回
isInject 是否存在注入危险 默认返回
isMemdump 是否存在内存 dump 危险 默认返回
isDebug 是否存在调试危险 默认返回
isHook 是否存在 hook 危险 默认返回
isJailBreak 是否越狱 默认返回
isVpn 是否应用 vpn 默认返回
isProxy 是否应用代理 默认返回
isSimulateGPS 是否篡改 GPS 默认返回
isCloudPhone 是否云真机 默认返回
3.2.2 web 端返回后果(局部示例,更多返回字段请分割售后反对获取)
字段名 字段形容 阐明
token 设施 token 默认返回
deviceType 设施类型 默认返回
hardId 设施指纹 默认返回
canvasId canvas 指纹 默认返回
webGl WebGl 指纹 默认返回
resolution 设施分辨率 默认返回
isLiedBrowser 是否伪造浏览器 默认返回
isCookieDisabled 是否禁用 cookie 默认返回
isTamperUa 是否篡改浏览器 ua 默认返回
isTamperRes 是否篡改分辨率 默认返回
isTamperCd 是否篡改浏览器色彩深度 默认返回
isEmulator 是否模拟器 默认返回

以上。

完整版接入计划:设施指纹接入

正文完
 0