服务器端接入

更新时间:2018-01-29 14:55:48

1 基础介绍

移动互联网高速发展,很多的APP厂商都已经把自身的业务往移动端发展了。以天猫双十一为例,2016年天猫双十一期间,82.42%的交易来自移动设备。因此,黑产团队也慢慢往移动端迁移。传统基于Web端的反作弊方案已经不能完全满足移动端业务的需求了。

设备风险识别系统基于精准设备指纹技术以及阿里巴巴独有的大数据,从设备基础信息、阿里系业务信息两方面识别移动设备风险。帮助客户识别在登录、注册、下单、活动等场景下业务风险,减少企业经济损失。

2 风险识别接口

接口采用POP网关的形式对外透出,因此用户需要使用Aliyun的AccessKeyId和AccessKeySecret作为参数(附录A-阿里云AK);前期为了数据安全考量,我们采用阿里云UID作为鉴权依据,烦请告知我们UID,待配置生效后,方能调用该接口;此外,为了防止用户APP被其他人恶意使用,我们在签名校验时会检测用户UID和APP的从属关系,用户需要在阿里云-移动安全控制台上传APP,建立UID和APP的对应关系(附录B-移动安全开通&APP上传)

2.1 方法签名

  1. DeviceRiskControlResponse riskControl(String rawData, String sign)

2.2 入参说明

字段 类型 是否必须 说明
rawData String 客户端传递给用户服务器端原始签名数据
sign String 调用安全组件客户端产生的对rawData的签名

2.3 结果说明

使用POP Java SDK,返回结果的具体字段信息如下

字段 类型 说明
code Integer 状态码
msg String 状态信息描述
data Object 具体结果

code对应关系如下

状态码 说明
200 成功
400 输入参数为空
500 运行时异常
580 返回结果JSON解析异常
590 无权限

data结构体如下

字段 类型 说明
signResult Object 验签结果
riskResult Object 风险识别结果

验签结果如下

字段 类型 说明
signStatus Integer 验签结果,见附录C-签名状态码
msg String 验签信息

风险识别结果如下

字段 类型 说明
isSimulator Boolean 是否模拟器 true:是 false:否
humanComputer Boolean 人机策略 true:是机器人 false:否
isWhiteList Boolean 是否白名单 true:是 false:否
isBlackList Boolean 是否黑名单 true:是 false:否
isRiskDevice Boolean 是否风险设备 true:是 false:否
isHighNetWorth Boolean 是否高净值用户 true:是 false:否

2.4 调用示例

目前只有Java的调用示例,用户如果使用其他开发语言,可以参照Java请求格式,依据阿里云SDK开发指南,并集成客户端&服务端接入文档中的python、php、.NET等jaq-sdk

  1. //请替换成你自己的accessKeyId、accessKeySecret
  2. IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);
  3. DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", "jaq", "jaq.aliyuncs.com");
  4. IAcsClient client = new DefaultAcsClient(profile);
  5. DeviceRiskControlRequest request = new DeviceRiskControlRequest();
  6. request.setRawData("xxxx");
  7. String sign = "xxxx";
  8. request.setSign(sign);
  9. DeviceRiskControlResponse response = client.getAcsResponse(request);
  10. System.out.println(JSON.toJSONString(response));

完整示例可参考sdk

返回结果

  1. {
  2. "code": 200,
  3. "data": {
  4. "riskResult": {
  5. "humanComputer": false,
  6. "isBlackList": false,
  7. "isHighNetWorth": true,
  8. "isRiskDevice": false,
  9. "isSimulator": false,
  10. "isWhiteList": true
  11. },
  12. "signResult": {
  13. "msg": "pass",
  14. "signStatus": 1
  15. }
  16. },
  17. "msg": "success"
  18. }

附录

A 阿里云AK

阿里云账号AccessKey是您访问阿里云API的密钥,具有该账户完全的权限,请您务必妥善保管!不要通过任何方式(eg, Github)将AccessKey公开到外部渠道,以避免被他人利用而造成安全威胁!AK

而阿里云账号UID如下图所示UID

B 开通移动安全服务&上传APP

1)进入云盾控制台-移动安全,免费开通移动安全服务

免费

2)上传应用

应用

3)上传成功

成功

C 验签状态码

作弊码 说明
1 通过
0 签名为空或不符合格式
-1 验签失败
-2 解析包名失败
-3 非官方APP
-4 未知异常
本文导读目录