本文介绍Web应用防火墙APP防护SDK的合规使用方式。为帮助开发者更好地落实用户个⼈信息保护相关要求,避免因使用第三⽅SDK的业务⽽出现侵害最终用户个人信息权益的行为,特制定本合规使用说明,供开发者在接入风险识别SDK服务时进行合理配置,满足监管合规要求。
SDK隐私政策披露示例
APP运营者应向最终用户明确告知我们的SDK处理个人信息相关规则,包括SDK名称、业务功能、处理个人信息目的、收集个人信息类型、隐私政策链接等内容。
APP需要制定单独的隐私政策,且《隐私权政策》中向用户告知使用Web应用防火墙APP防护SDK,如在您APP的《第三方共享清单》中告知如下内容:
SDK名称:Web应用防火墙APP防护SDK。
业务功能:提供APP反爬防护能力,检测异常设备和风险设备。
收集个人信息类型:按照实际配置采集信息的情况填写。
使用权限情况:按照实际配置的权限情况填写。
隐私政策链接:Web应用防火墙APP防护SDK隐私政策。
SDK申请系统权限的说明
安卓操作系统应用权限
权限内容 | 是否必选 | 使用目的 | 申请时机 |
INTERNET | 是 | 用于获取网络访问权限 没有该权限将导致SDK功能不可用。 | 调用信息采集接口之前 |
ACCESS_WIFI_STATE | 否(推荐赋予) | 用于获取设备WIFI状态信息。 | 调用信息采集接口之前 |
ACCESS_NETWORK_STATE | 否(推荐赋予) | 用于获取设备网络状态信息。 | 调用信息采集接口之前 |
BLUETOOTH_CONNECT | 否(推荐赋予) | 用于获取蓝牙MAC地址。 | 调用信息采集接口之前 |
READ_PHONE_STATE | 否(推荐赋予) | 用于获取设备指纹相关的ID字段。 | 调用信息采集接口之前 |
WRITE_EXTERNAL_STORAGE READ_EXTERNAL_STORAGE | 否(推荐赋予) | 用于缓存配置文件在上。本地磁盘。 | 调用信息采集接口之前 |
ACCESS_FINE_LOCATION ACCESS_COARSE_LOCATION | 否(推荐赋予) | 获取位置信息 | 调用信息采集接口之前 |
iOS操作系统应用权限
权限 | 是否必选 | 使用目的 | 申请时机 |
NSLocalNetworkUsageDescription | 否(推荐赋予) | 获取局域网内设备连通性,用于发现设备牧场、群控等风险。 | 调用信息采集接口之前 |
NSUserTrackingUsageDescription | 否 | 用于获取 IDFA 信息,增强设备ID稳定性。 | 调用信息采集接口之前 |
可选个人信息配置的说明
对于可选收集的个人信息的控制,开发者可以参考Android接入手册或iOS接入手册的内容进行配置操作。因相关信息的不收集将会对其对应的功能造成一定影响,请开发者结合业务实际需要进行合理配置。以下是iOS跟Android端选择采集个人信息的配置方法。
Android端配置方法
通过调整初始化信息采集接口中type配置可选个人信息的操作,采集分为三种模式:全量采集、自定义隐私采集、非隐私采集。
TT_DEFAULT:表示采集全量数据。
TT_NO_X | TT_NO_Y :既不采集X又不采集Y,表示自定义隐私采集。
TT_NOT_GRANTED:表示不采集所有隐私数据。
个人信息字段 | 说明 | CollectType配置字段 |
设备基础信息、设备标识信息、设备网络信息、设备位置信息、设备日志信息等 | 采集全量数据 | TT_DEFAULT |
设备名(Build.DEVICE)、Android版本号(Build.VERSION#RELEASE)、屏幕分辨率。 | 不采集基础设备数据 | TT_NO_BASIC_DATA |
IMEI、IMSI、SimSerial、BuildSerial(SN)、MAC地址 | 不采集设备标识数据 | TT_NO_IDENTIFY_DATA |
OAID、Google广告ID、Android ID | 不采集唯一标识数据 | TT_NO_UNIQUE_DATA |
黑灰产App列表、局域网IP、DNS IP、连接的WIFI信息(SSID、BSSID)、附近WIFI列表、定位信息、传感器信息 | 不采集扩展设备数据 | TT_NO_EXTRA_DATA |
除所有隐私字段的其他数据 | 不采集所有隐私数据 | TT_NOT_GRANTED |
通过调整初始化信息采集接口中Type可选采集个人信息范围。以下是代码示例:
// 全量采集
int ret = TigerTallyAPI.init(this.getApplicationContext(), appkey, TigerTallyAPI.TT_DEFAULT, options, null);
// 指定隐私数据采集,不同的隐私数据可以通过"|"进行拼接
int privacyFlag = TigerTallyAPI.TT_NO_BASIC_DATA | TigerTallyAPI.TT_NO_UNIQUE_DATA;
int ret = TigerTallyAPI.init(this.getApplicationContext(), appkey, privacyFlag, options, null);
// 不采集隐私字段
int ret = TigerTallyAPI.init(this.getApplicationContext(), appkey, TigerTallyAPI.TT_NOT_GRANTED, options, null);
Log.d("AliSDK", "ret:" + ret);
iOS 配置方法
通过选择不同Framework SDK文件配置是否采集IDFA字段。
个人信息字段
说明
IDFA
广告标识符
iOS SDK分为IDFA(Identifier for Advertising,简称IDFA)版本和非IDFA版本,对应的SDK文件分别是:
AliTigerTally_IDFA.framework
AliTigerTally_NOIDFA.framework
当您的SDK文件是AliTigerTally_IDFA.framework时,会采集iOS的隐私字段IDFA;SDK文件是AliTigerTally_NOIDFA.framework时不会采集iOS的隐私字段IDFA。
通过调整初始化信息采集接口中type参数配置可选个人信息字段采集范围。采集分为三种模式:全量采集、自定义隐私采集、非隐私采集。
TT_DEFAULT:表示采集全量数据。
TT_NO_X | TT_NO_Y:表示既不采集X又不采集Y,表示自定义隐私采集。
TT_NOT_GRANTED:表示不采集所有隐私数据。
个人信息字段
说明
collectType配置
设备基础信息、设备标识信息、设备网络信息、设备日志信息等
全量数据
TT_DEFAULT
设备名称、系统版本号、屏幕分辨率
基础设备数据
TT_NO_BASIC_DATA
IDFV、IDFA
唯一标识数据
TT_NO_UNIQUE_DATA
连接的WIFI信息(SSID、BSSID)、附近WIFI列表
扩展设备数据
TT_NO_EXTRA_DATA
除所有隐私字段的其他数据
不采集所有隐私数据
TT_NOT_GRANTED
通过调整初始化信息采集接口中Type参数控制采集个人信息范围。以下是代码示例:
// 全量采集 int ret = [[AliTigerTally sharedInstance] init:appkey collectType:TT_DEFAULT options:options listener:nil]; // 指定隐私数据采集, 不同的隐私数据可以通过"|"进行拼接 TTCollectType collectPrivacy = TT_NO_BASIC_DATA | TT_NO_EXTRA_DATA; int ret = [[AliTigerTally sharedInstance] init:appkey collectType:collectPrivacy options:options listener:nil]; // 不采集隐私字段 int ret = [[AliTigerTally sharedInstance] init:appkey collectType:TT_NOT_GRANTED options:options listener:nil];
SDK初始化和业务功能调用时机
用户首次启动App时,请务必在用户同意您App中的隐私政策后,且用户主动使用本SDK提供的功能时再进行相关接口调用。如无必要,请勿在同意隐私政策后立即采集设备信息,避免过度或过早采集。信息采集接口配置文档可以查看接入手册,并在Android在文档导读中初始化SDK处进行查看,iOS在导读中初始化SDK处进行查看。
相关文档
《Web应用防火墙APP防护SDK隐私政策》:Web应用防火墙APP防护SDK隐私政策
《Android接入手册》:Android应用集成SDK
《iOS接入手册》:iOS应用集成SDK
《鸿蒙接入手册》:Harmony应用集成SDK