>

API 请求域名

https://riskct.geetest.com

认证方式

服务端查询接口需要进行签名校验,签名算法使用HMAC-SHA256
HMAC所使用的KEYAPP_ID所定义的PRIVATE_KEY,需要在后台进行创建以及获取。
签名的消息为APP_ID与时间戳。

sign_token = hmac(key=private_key, msg=app_id+gen_time, digestmod='SHA256').hexdigest()

GeeToken 查询接口

POST /g2/api/v1/token_query

BODY 请求参数

格式 : JSON

参数名 是否必选 类型 说明
app_id String 极验后台创建应用后生成的应用id
gen_time integer 时间戳,用于签名,精确到秒
gee_token String 客户端sdk收集的数据,Geetoken有效期10分钟
scene String 本次查询场景:
1. login
2. sign_up
3. activity
默认为 activity
sign_token String 数据签名,签名方式见 认证方式
attr Object 用于提交账号数据,获得账号画像标签,具体参见下文attr参数说明

attr参数说明

名称 是否必选 类型 说明
user_ip String 用户IP,支持ipv4和ipv6格式, ip_type目前只支持国内ipv4的ip
op_timestamp 否,当需要获取账号画像标签为必传 Integer C端用户发起业务操作(注册、领奖、下单等)的时间戳,精确到秒
user_id 否,当需要获取账号画像标签为必传 String 账户id,根据user_id_type传入对应的值
比如user_id_type为2时传入明文手机号
user_id_type为102时,则传入MD5加密后的手机号
user_id_type 否,当需要获取账号画像标签为必传 Integer 0: 自定义
1: Email
2: 手机号
102: MD5加密手机号
3: QQOpenID
4: WechatOpenID
当需要获取账号画像标签应为[2,102,3,4]中一种, 自定义与Email暂时不支持
user_id_detail 否,仅当user_id_type为3或者4时为必选 Object,具体见下文user_id_detail参数说明 账户详细信息,仅仅在账户id类型为QQOpenID或者WechatOpenID(user_id_type为3或者4)时需要,详见下文user_id_detail参数说明

user_id_detail参数说明

user_id_type 为3时

名称 是否必选 类型 说明
app_id_user String QQ分配给网站或者应用的唯一ID
associate_account String 用于标识QQ用户登录后所关联业务自身的账号ID
mobile String 账号绑定的手机号
device_id String 设备ID,即IMEI或IDFA

user_id_type为4时

名称 是否必选 类型 说明
associate_account String 用于标识微信用户登录后所关联业务自身的账号ID
wechat_sub_type Integer 微信开放账号类型
1. 公众号、微信第三方登录
2. 小程序
rand_str 否,仅当type为2时必传 String 签名用随机字符串,建议16字符
wechat_access_token String 如果传入的微信开放账号类型为1,则传入授权用的access_token;如果微信开放账号类型为2,则传入密钥为session_key,使用 hmac_sha256算法对nonce字段签名的字符串结果
mobile String 账号绑定的手机号
device_id String 设备ID,即IMEI或IDFA

参数示例

{
"app_id": "你的app_id",
"sign_token": "签名结果",
"gen_time": 1657165827,
"scene": "sign_up",
"attr": {
"user_ip": "117.136.52.227",
"op_timestamp": 1657165827 ,
"user_id": "用户手机号",
"user_id_type": 2
},
"gee_token": "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"}

返回参数

名称 类型 说明
status String 返回结果的状态说明,success为成功
code Integer 返回结果的状态码 0为成功
data Object 具体见下文data参数说明

data 参数说明

名称 类型 说明
local_id String 基础的设备指纹
root_id String 高级的设备指纹(设备验高级版本返回)
env_check Object 风险检测项结果,如果对应的key为true表示命中该规则,否则为没有命中
risk_code Array(Integer) 当前流量命中的风险码
risk_level String 账号风险处置建议
pass:无恶意
review:需人工审核
reject:高风险,建议拒绝
此字段可能返回null,表示取不到有效值
ip_type Integer ip 风险画像,只支持国内ipv4的ip
1 表示数据中心
2 表示专用出口
3 表示普通宽带
4 表示移动宽带
5 表示媒体方IP
6 表示已知爬虫
7 表示中小运营商
-1 表示ip格式不支持
is_risk_device Boolean 当前流量所使用的设备是否有风险
sign String 客户端提交的用户业务数据的签名,用于校验或关联业务数据和安全结果。签名规则为sign = sha256(具有唯一性的业务数据).hexdigest(),唯一性的业务数据一般为业务流水号或凭据。如果在客户端上未提供业务数据则返回为空字符串。
ts Integer 服务端时间戳
client_ts Integer 客户端数据生成的时间戳

参数示例

{
"status": "success",
"code": 0,
"data": {
"local_id": "247A8CCF15054743B781759621570060",
"env_check": {
"is_debug": true,
"is_simulator": false,
"is_risk_app": true,
"is_hook": false,
"is_jailbreak": false,
"is_proxy": true,
"is_muti_open": false,
"is_blacklist_device": false
},
"sign": "8e9916c5340c43fa003fe2dd54cd4e3027affbfc0d631e4cd858f64ec09fa9ed",
"ts": 1666772160860,
"client_ts": 1655369276590,
"root_id": "GEE4-01-6d1bd4541d5b9f679cda9086bb3dffaf1f42992917f23f11a63da390ebff6014",
"risk_code": [
10001,
20210,
20400,
20501
],
"risk_level": "pass",
"is_risk_device": true,
"ip_type": 4
}
}

env_check参数说明

名称 类型 客户端类型 说明
is_simulator Boolean Android, iOS, Web 是否为模拟器
is_debug Boolean Android, iOS, Web 是否为调试模式
is_hook Boolean Android, iOS, Web 是否篡改
is_risk_app Boolean Android, iOS 是否安装风险应用
is_proxy Boolean Android, iOS 是否开启代理
is_muti_open Boolean Android, iOS 是否多开应用
is_vpn Boolean Android 是否开启VPN
is_root Boolean Android 是否为Root机器
is_jailbreak Boolean iOS 是否为越狱机器
is_blacklist_device Boolean Android, iOS 是否为黑名单机器
is_incognito Boolean Web 是否匿名模式

risk_code 参数说明

客户端风险码 风险码说明 场景风险说明
10001 检测到包名篡改或重打包 部分黑产会篡改程序包加入广告或修改业务逻辑后,重新打包发布
10002 GeeToken 过期或者重复使用,GeeToken 有效期10分钟 黑产可能会缓存堆积令牌,在活动开始短时间内利用缓存令牌大批量请求业务接口
20100 检测到传统模拟器风险 黑产利用传统模拟器可以大批量完成黑产操作,比如规模化的注册、大批量登录撞库等等
20101 检测到 ARM 模拟器(或云手机)风险 黑产利用 ARM 模拟器(或云手机)可以相较于以往的技术能更高效、自动化完成黑产操作,比如可规模化的注册、大批量登录撞库等等
20200 设备存在使用多开工具风险 如羊毛党会在裂变活动在同一设备上制作多个 App 分身,登录多个账号,协同完成邀请流程
20201 设备存在使用改机工具风险,可改变设备属性或指纹 黑产为了躲避风控工具检测,会更改部分设备信息和属性,比如更改 IMEI 等设备标识以逃逸设备指纹的标记
20202 设备存在使用群控/自动化工具风险,可规模化黑产操作 高效率的控制多台设备,完成规模化操作,比如点赞转发,群发广告等
20203 设备存在使用逆向工具风险 黑产会使用一些逆向工具,逆向应用的业务逻辑,进而篡改代码
20204 设备存在使用网络篡改工具风险 黑产通常会利用此类工具篡改网络以达到攻击的目的,比如躲避风控系统在网络标识层面的追踪和检测
20205 设备存在使用游戏修改器工具风险 打金工作室或者玩家作弊会使用此类工具完成游戏作弊
20206 设备有虚拟定位风险 黑产通常会篡改位置信息,躲避业务在位置上的限制,或者伪造轨迹模拟真人轨迹行为
20207 当前处于安卓虚拟机环境中 黑产可在安卓设备上虚拟出一个新的安卓环境,可以完成大多数自动化攻击,比如自动下单,自动升级,自动加好友等等
20210 当前处于处于多开环境中 黑产可以在设备自带的分身应用上 ,开多个应用分身,完成多账号登录和协作
20300 设备有代码篡改低风险,使用该标签需要排除自身开发篡改的行为 有代码篡改嫌疑,可能是黑产的篡改行为,也可能是开发人员在开发中使用了篡改技术
20301 设备有代码篡改中风险,可篡改代码逻辑 有代码篡改行为,黑产篡改代码逻辑后会攻击业务接口,以达到某种牟利的目的
20302 设备有代码篡改高风险 有高风险代码篡改行为,使用了较危险的篡改技术
20303 设备存在信息伪造风险,设备属性或指纹不匹配 黑产会伪造一些设备信息,可将当前设备伪装成另一个新的设备,进而绕过业务限制进行和灰产行为
20400 设备存在被调试风险,可进行逆向分析、破解、群控自动化 通常黑产使用调试技术用于逆向分析、破解接口等场景
20401 设备可能处于隐身模式 浏览器开启了隐身模式,灰黑产会利用隐身模式调试网页或躲避浏览器指纹追踪
20500 设备开启 VPN 中 设备开启了 VPN,存在网络层面的篡改风险,通过 VPN 可躲避网络标识的追踪,甚至篡改网络
20501 设备开启网络代理中 设备存在网络代理行为,通过系统代理从指定的出口访问,躲避风控系统的检测和限制
20600 iOS 设备存在越狱行为 iOS 设备越狱能获取更高的权限,更进一步的对业务进行篡改
20601 Android 设备存在 Root 行为 黑产通常会 Root Android 设备,获取更高的权限,更进一步的对业务进行篡改
20602 Android 设备使用可疑定制 ROM 部分黑灰产设备在 Android 开源项目上定制的 ROM,有较好的伪装能力,能对业务较大的破坏性,设备系统不可信
20603 Android 设备 ROM 为安卓开源项目 正常的安卓设备都是自带厂商特性原生系统,部分黑灰产设备使用 Android 开源系统,能对业务有一定的破坏性,设备系统风险可疑
21000 检测到设备未插 SIM 卡 正常用户的设备都会使用运营商 SIM 卡,无卡设备访问业务,往往来自灰黑产的设备墙和设备农场
40001 用户账号黑名单 在后台添加的账号黑名单,如手机号黑名单、微信 Openid 黑名单等
40002 IP 黑名单 在后台添加的 ip 黑名单
40003 设备指纹黑名单 在后台添加的设备指纹黑名单
40201 IP存在恶意破解或爬虫行为 IP曾经有过恶意破解或爬虫行为
40202 IP存在恶意攻击行为 IP曾经有过恶意攻击行为
40203 机房IP IP疑似机房IP
90100 设备为可疑定制机 黑产会躲避风控系统的检测,为了控制刷新设备的成本,通常会修改设备信息,定制伪装成一个新设备

(以下风险码需正确传入 attr参数 才会返回)

账号风险码 一级说明 二级说明
1 账号信用低 账号近期存在因恶意被处罚历史,网络低活跃,被举报等因素
11 疑似低活跃账号 账号活跃度与正常用户有差异
2 垃圾账号 疑似批量注册小号,近期存在严重违规或大量举报
21 疑似小号 账号有疑似线上养号,小号等行为
22 疑似违规账号 账号曾有违规行为、曾被举报过、曾因违规被处罚过等
3 无效账号 无效账号 送检账号参数无法成功解析,请检查微信openid 是否有误/QQopenid是否与QQ开发平台的appid关联,手机号是否为中国大陆手机号
4 黑名单 该账号在业务侧有过拉黑记录
5 白名单 业务自行有添加过白名单记录
101 批量操作 存在 ip/设备/环境等因素的聚集性异常
1011 疑似 IP 属性聚集 出现 IP 聚集
1012 疑似设备属性聚集 出现设备聚集
102 自动机 疑似自动机批量请求
103 恶意行为-网赚 疑似网赚
104 微信登录态无效 检查 wxtoken 参数,是否已经失效
201 环境异常 操作 ip/设备/环境存在异常。当前 ip 为非常用 ip 或恶意 ip 段
2011 疑似非常用IP 请求 当前请求 IP 非该账号常用 IP
2012 疑似 IP 异常 使用 idc 机房 ip 或 使用代理 ip 或 使用恶意 ip 等
205 非公网有效ip 传进来的 IP 地址为内网 ip 地址或者 ip 保留地址;
206 设备异常 该设备存在异常的使用行为
2061 疑似非常用设备 当前请求的设备非该账号常用设备
2062 疑似虚拟设备 请求设备为模拟器、脚本、云设备等虚拟设备
2063 疑似群控设备 请求设备为猫池、手机墙等群控设备