反作弊接口说明

2023.01.16 16:27:40

    用途

    运营对接过程中,为提高客户接入效果,指导客户不同场景下传入数据要求。同时,在了解客户业务后,可以针对性推荐埋点场景。

    使用人员

    运营人员
    技术人员

    简介

    易盾通过反作弊引擎,在客户业务关键节点进行业务风险识别,并支持业务实时获取检测结果,拦截阻断风险业务行为。可拦截风险业务一共分以下几类:
    (1)注册时,检测机器注册、群控批量注册、黑手机号码注册等行为
    (2)登录时,检测撞库登录、机器自动登录等行为
    (3)自定义活动场景时,比如点赞、评论、转发、邀请、送礼、提现、抽奖、领券等,识别场景下异常用户行为
    上述识别基于易盾反作弊引擎系统,引擎中包含了识别规则引擎、风险画像库、聚类分析/关联分析等团伙挖掘算法等底层技术。

    超时时长

    默认为500ms,可配置

    使用场景

    客户依据凭证(token),从易盾服务端获取反作弊结果

    请求

    基本
    HTTP URL https://ac.dun.163.com/v3/common/check
    HTTP Method POST

    请求头

    名称 类型 必填 描述
    Content-Type string 固定值:"application/x-www-form-urlencoded"

    请求参数

    请求参数由公共参数和接口参数两部分组成,通用参数见请求公共参数

    接口参数

    特别说明

    必传参数:调用接口必须要传递的参数,否则调用接口失败
    强烈建议参数:调用接口强烈建议传递的参数,否则检测效果将大幅度降低
    建议参数:调用接口建议传递的参数,有利于进一步提高检测效率
    强烈建议参数建议参数如果实在没有可以不传,不会影响调用接口

    参数名称 类型 传入说明 最大长度 描述
    token string 必传参数 256 反作弊结果查询token,由业务前端页面提交给业务后端。
    account string 必传参数 256 用户唯一标识,如果是手机号or邮箱,支持传入hash值,hash算法:md5(account)
    ip string 必传参数 20 当前客户端业务事件发生时的公网IP地址(ipv4)
    phone string 强烈建议 64 用户用于登录的手机号码或者关联的手机号码,默认国内手机号。如有海外手机,需包含国家地区代码,格式为“+447410xxx186(+44即为国家码)”。如果需要加密,支持传入hash值,hash算法:md5(phone)
    activityId string 强烈建议 256 活动的唯一标识,用于标记场景下的细分类别,如:注册-自主注册、注册-受邀请注册;再如:登录- app登录、登录-web登录等
    target string 强烈建议 256 活动操作的目标,比如:A给B点赞,则target为B。如果target是手机号或邮箱,请提供hash值,hash算法:md5(target)。如没有,可传空
    email string 建议参数 64 用户的邮箱,如果需要加密,支持传入hash值,hash算法:md5(email)
    registerTime Number 建议参数 13 用户的注册时间,单位:毫秒
    registerIp string 建议参数 20 用户的注册IP
    nickname string 建议参数 256 用户的昵称/ID
    userLevel string 建议参数 32 用户的等级,如没有,可传空
    extData string 建议参数 2048 拓展信息,建议客户自行构造json结构(不同场景下建议传递不同的参数,有助于提高场景下的检测效果,相见下述不同场景传递参数说明)

    普通场景

    不同场景下建议传递不同的extData,社交类场景见社交场景、营销类场景见营销场景、电销类场景见电销场景、支付类场景见支付场景

    1. 注册

    用户注册当前应用账号

    • extData Json内容:
    参数名 类型 传入说明 描述 备注
    hashPassword string 强烈建议 加密后的用户密码
    appVersion string 强烈建议 当前客户端应用版本号
    payingUser string 建议参数 是否为付费用户 取值true、false,用于初步判定用户付费or黑产倾向
    registerPlatform string 建议参数 第三方注册平台,如果非三方平台注册,可传空
    verified string 建议参数 是否认证(信息认证、实名认证等) 取值true、false,用于确认用户是否已做实名认证
    identity string 建议参数 用户身份 用于区分签约主播、高级vip、普通用户等
    gender string 建议参数 注册用户的性别,如无,可传空
    inviterAccount string 建议参数 邀请注册人的账号名 / 邀请码等,如无,可传空
    registerChannel string 建议参数 注册用户来源渠道,如无,可传空
    2. 登录

    用户登录当前应用

    • extData Json内容:
    参数名 类型 传入说明 描述 备注
    hashPassword string 强烈建议 加密后的用户密码
    appVersion string 强烈建议 当前客户端应用版本号
    gender string 建议参数 注册用户的性别,如无,可传空
    age int 建议参数 用户年龄
    vaildCustomer int 建议参数 用户名或密码验证结果(0:表示失败,1:表示成功) 可用于撞库登录识别
    registerChannel string 建议参数 注册用户来源渠道,如无,可传空
    registerData string 建议参数 用户注册账号日期
    registerDay int 建议参数 用户注册天数

    作弊方式举例:机器自动登录

    3. 更新账户信息

    用户更新当前账号信息

    • extData Json内容:
    参数名 类型 传入说明 描述 备注
    appVersion string 强烈建议 当前客户端应用版本号
    newEmail string 强烈建议 变更后的邮箱地址,如果需要加密,支持传入hash值,hash算法:md5(newEmail)
    newPhone string 强烈建议 变更后的手机号码,如果需要加密,支持传入hash值,hash算法:md5(newPhone)
    newName string 建议参数 变更后的昵称
    gender string 建议参数 用户的性别,如无,可传空
    age int 建议参数 用户年龄
    registerChannel string 建议参数 注册用户来源渠道,如无,可传空
    4. 浏览

    用户浏览app中某个具体的页面,建议只在重要页面埋点

    • extData Json内容:
    参数名 类型 传入说明 描述 备注
    appVersion string 强烈建议 当前客户端应用版本号
    pageName string 强烈建议 浏览页面名称/ID
    visitSource string 强烈建议 浏览页面来源,进入页面的途径。如无,可传空
    contentID string 建议参数 浏览页面内容ID,用于重点定位防控内容。
    5. 签到

    用户在app中进行签到领取福利

    • extData Json内容:
    参数名 类型 传入说明 描述 备注
    appVersion string 强烈建议 当前客户端应用版本号
    signDate string 强烈建议 当前签到日期
    haveSignDays int 强烈建议 累计签到天数
    signAwardID string 建议参数 签到奖励内容 ID
    6. 下载

    用户通过app下载指定的内容(比如推广的app、app内的视频、音频、图片等)

    • extData Json内容:
    参数名 类型 传入说明 描述 备注
    appVersion string 强烈建议 当前客户端应用版本号
    downloadContent string 强烈建议 下载目标内容名称/ID
    downloadSize int 强烈建议 下载内容大小,通常用“MB”作为计量单位
    price string 建议参数 下载内容消耗的金额,可以是app内货币等。如无,可传空
    7. 浏览

    用户通过浏览内容获取奖励

    • extData Json内容:
    参数名 类型 传入说明 描述 备注
    contentID string 强烈建议 浏览内容ID
    contentType string 强烈建议 浏览内容类型,比如文章、视频、图片等
    isAward int 建议参数 事件是否能够获取激励,一般0表示有,1表示没有
    awardID string 建议参数 如事件产生了激励,可传递激励内容ID。如无,可传空

    响应

    响应结果(result)内容如下,响应公共字段已省略,详细见响应公共字段

    参数名 类型 描述
    action int 检测结果:0 正常(放行),10 正常(观察),20 致命(拦截)
    taskId string 任务id,与检测请求一一对应,建议保存此值方便以后数据查询
    hitInfos List 命中信息详情,返回字段内容参照命中字段表(检测结果正常时,字段内容为空)
    detail json 设备信息详情,字段解释见设备指纹字段表(默认不返回,可配置开通)

    hitInfos

    命中详情信息(hitInfos)内容如下(命中多种风险类型时,所有命中风险均会展示):

    参数名 类型 描述
    hitType int 命中的风险类型
    hitTypeDesc string 命中的风险类型的中文描述
    hitMsg string 命中的风险的详情描述(可能为空)

    hitType返回码及含义如下:

    hitType值 含义描述
    0 正常
    1 数据异常,主要表现有数据完整性校验不通过或数据伪造等
    2 行为异常,主要表现有用户的操作行为(鼠标点击/移动等)无法通过行为验证模型等
    3 设备模型,主要表现有设备指纹等信息无法通过设备验证模型等
    4 业务模型,主要表现有撞库、批量操作、违反业务规则等
    5 校验异常,主要表现有数据强校验结果异常或数据伪造等
    6 模拟器,主要表现有安卓端使用手机模拟器的行为
    7 越狱或ROOT,主要表现有iOS系统已越狱或Android系统已root
    8 浏览器异常,主要表现有浏览器分辨率等参数异常或遭篡改等
    9 IP异常,主要表现有终端IP画像结果为风险IP或高危IP等
    10 黑名单,易盾自有及客户自定义黑名单数据
    11 白名单,易盾自有及客户自定义白名单数据
    12 高危账号,主要表现有团伙账号或异常共享账号等风险账号类型
    13 多开小号,主要表现有批量多开
    14 篡改硬件信息,主要表现为篡改硬件设备参数信息
    15 篡改系统信息,主要表现为篡改系统参数信息
    16 高危设备,主要表现为高危设备画像风险评分,黑产特征设备等类型
    17 群控或云控,主要表现为群控工作室设备或云机
    18 使用修改工具,主要表现有使用Hook修改、Xposed修改,Magisk修改等
    19 虚拟环境,非真实设备访问环境,区别于安卓模拟器,如编辑后台等
    20 脚本工具,黑灰产用于作弊行为的脚本工具
    自定义编码 客户定制添加的风险类型

    detail

    设备信息详情(detail)内容如下:

    • Android / iOS(如有更多详情信息需要,联系产技团队评估):
    参数名 类型 描述 终端
    deviceId string 设备唯一指纹 iOS、Android
    osv string 系统版本 iOS、Android
    model string 手机厂商 iOS、Android
    appVersion string APP版本号 iOS、Android
    simulator int 是否模拟器(0:不是模拟器,非0:是模拟器) iOS、Android
    root int 是否root(0:不是root,1:是root) iOS、Android
    flag int 是否被调试(0:没有被调试,非0:被调试) iOS、Android
    injection Boolean 是否注入 iOS、Android
    mac string mac地址 Android
    • web / h5:
    参数名 类型 描述 终端
    deviceId string 设备唯一指纹 web/h5
    appVersion string 浏览器版本信息 web/h5

    完整响应结果代码示例

    反作弊识别为正常的响应结果:

    {
        "code":200,
        "msg":"ok",
        "result":{
            "action":0,
            "taskId":"698256a52215495ab3c61f14e8e6e844",
            "hitInfos":[
                {
                }]
        }
    }
    

    反作弊识别为作弊的响应结果:

    {
        "code":200,
        "msg":"ok",
        "result":{
            "action":0,
            "taskId":"698256a52215495ab3c61f14e8e6e844",
            "hitInfos":[  //如果同时命中多个类型,则会返回所有风险信息
                {
                    "hitType":5,
    "hitTypeDesc":"校验异常",
                    "hitMsg":"正式定制版在这个字段会返回命中详情"
                },
                {
                    "hitType":6,
            "hitTypeDesc":"模拟器",
                    "hitMsg":"正式定制版在这个字段会返回命中详情"
                }
            ],
            "detail": {
               "deviceData": {
                   "appVersion": "1.0",
                   "osv": "6.0",
                   "simulator": 2,
                   "flag": 0,
                   "root": 1,
                   "model": "M55 Note",
                   "injection": false,
                   "deviceId": "41c75882d231afec0dbf2d54d18c66df",
                   "mac": "a4:49:d1:e4:6d:d7"
                               }
                      }
                }
    }
    

    完整示例代码

    示例代码见 示例代码

    Online Chat Tel:95163223