561
windows
业务风控Android/iOS使用说明__使用手册_数据风控-阿里云
业务风控,包含:注册防控、登陆防控、活动防控、消息防控和其他风险防控,通过用户行为、软硬件环境信息、设备指纹、业务基础信息综合判定用户请求的风险程度:
注册防控:在注册场景提供安全防护,防止机器注册、人工恶意注册、注册短信被攻击。
登陆防控:在登陆场景提供安全防护,防止刷库撞库、暴力破解、可疑登陆。
活动防控:在活动场景提供安全防护,防止刷红包、抢优惠券、黄牛抢号、黄牛刷单。
消息防控:在发帖、评论场景提供安全防护,防止批量发帖、垃圾评论。
其他风险防控:其他场景下的风险防控,防止如频繁查机票、机器点赞、批量送礼物、虚假投票等。
系统间交互流程
1.风险采集:采集用户行为、软硬件环境信息、设备指纹信息。用户在提交业务请求之前,需要调用数据风控sdk接口,完成风险采集;
2.提交业务请求:用户提交业务请求如注册、登陆请求时,需要将sdk端风控参数传递给服务端,风控参数包含:
- wtoken:风险采集id
3.判断请求风险情况:用户服务端调用数据风控服务api,获得请求风险结果。该步骤需要放在业务请求处理之前。
4.风险处理:根据返回的风险结果,进行风险处理。对于不同风险结果,建议处理方案:
- 无风险:继续做业务请求处理,如注册、登陆处理;
- 中风险:建议在做业务请求处理之前,让操作者进行一定的验证,如验证码、语音、短信等验证;
- 高风险:建议直接返回业务请求失败,让操作者重新再来一次。
接入流程
1.第一步,进入数据风控控制台:
- 未开通服务,开通服务;
- 已开通服务,进入服务管理,选择需要的业务风控服务,点击【创建】:
2.第二步,选择应用类型,输入高峰期PV,点击【下一步】:
3.第三步,根据系统集成代码的操作步骤,下载SDK,集成到APP中;服务端调用对应api,详细操作参见下方:系统集成。集成完成,点击【下一步】:
4.第四步,系统集成完毕,发布对应的服务:
系统集成
Android SDK集成配置
1.生成SDK
出于对应用数据安全考虑,数据风控生成的SDK会与应用强绑定。如果此前使用Debug版应用 生成SDK需要在应用发布前使用Release版应用重新上传,并替换原有SDK。
- 上传Release版APK;
- 点击“生成SDK”按钮,生成SDK;
- 生成完SDK后,SDK自动下载到本地;
2.导入SDK
2.1 导入前准备
数据风控SDK在阿里巴巴的很多开放的SDK中也有包含,如果你的APK中同时引入了这些SDK,则在集成聚安全SDK之前需要将这些SDK(TAE,支付宝等)中包含的安全组件(.jar、.aar文件)、图片文件(YW_1222.JPG)全部删除掉。
2.2 导入SDK
根据使用方式导入SDK,AndroidStudio使用aar方式导入,Eclipse使用jar和so方式导入;
- 导入aar,如图把所有的aar都复制到项目的libs目录下,然后在该Module的build.gradle中增加如图配置:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.+'
compile name: 'NoCaptchaSDK-external-release-5.1.17', ext: 'aar'
compile name: 'SecurityBodySDK-external-release-5.1.25', ext: 'aar'
compile name: 'SecurityGuardSDK-external-release-5.1.81', ext: 'aar'
compile name: 'verificationsdklib', ext: 'aar'
}
- 导入jar包和so,如图把SDK中的所有的jar包和so文件都复制到工程的libs目录下:
注意:
a.目前只提供两种架构下的so文件,armeabi是针对arm架构编译的包,x86是针对x86架构编译的包。应用程序在不同cpu架构的机型里会选择相应的so文件加载。
b.如果libs下有armeabi-v7a文件夹的话,需要将armeabi中对应的so复制一份到armeabi-v7a文件夹下。
c.如果libs下有arm64-v8a或x86_64文件夹的话,需要将arm64-v8a文件夹删除掉。
d.如果在想在x86或者模拟器上运行你的程序,必须导入x86架构的so,但是可以在应用发布时去掉x86目录下的so。
e.最后目录显示如下:NoCaptchaSDK-5.1.16.jar
armeabi
SecurityBodySDK-5.1.19.jar
verificationsdklib.aar
SecurityGuardSDK-5.1.58.jar
x86
3.导入图片
3.1 解压第1点中生成的SDK,获得文件:yw1222.jpg;
3.2 把这个文件导入到工程中resdrawable目录下,如果没有这个文件夹,请先创建,如下图:
左图为AndroidStudio中安全加密图片位置,右图为Eclipse中安全加密图片位置;
3.3 如果开启混淆要检查发布包335大小不为0, shrinkResources true会导致yw_1222_0335以及yw_1222图片为0
release {
minifyEnabled true // 是否混淆
shrinkResources true // <<<会导致335或者122图片为0
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
解决方案一
放弃资源压缩
解决方案二
参考google 关于shrink resource
新建 res/raw/keep.xml后加入如下内容:
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="https://schemas.android.com/tools"
tools:keep="@drawable/yw_1222_0335, @drawable/yw_1222"/>
- 保留文件规则简单介绍,资源文件相对路径加上图片文件名(不需要扩展名);
- 执行 ./gradlew clean assembleRelease –info|grep “Skipped unused resource” 观察是否安全图片给压缩,同时检查解压缩后文件是否为0。
4.android studio修改项目文件
4.1 修改应用的工程根目录build.gradle文件:
allprojects {
repositories {
jcenter()
flatDir { //<------添加三行
dirs 'libs' //<------
} //<------
}
}
4.2 修改application子工程的build.gradle文件
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile(name:'verificationsdklib', ext:'aar')
}
4.3 修改application子工程的build.gradle文件,增加jnilib
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
4.4 AndroidManifest.xml 加入验证SDK入口Activity声明
<activity android:name="com.alibaba.verificationsdk.ui.VerifyActivity"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.NoTitleBar"
android:windowSoftInputMode="adjustResize" >
</activity>
5.Eclispe修改项目文件5.1 添加权限信息
- 如果是AndroidStudio项目,则不需要在项目中额外配置权限,因为在aar中我们自己已经声明了权限;
- 如果是Eclipse项目,需要在AndroidManifest.xml文件中添加下列权限配置:
5.2 AndroidManifest.xml 加入验证SDK入口Activity声明<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<activity android:name="com.alibaba.verificationsdk.ui.VerifyActivity"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.NoTitleBar"
android:windowSoftInputMode="adjustResize" >
</activity>
6.关于混淆
如果设置资源压缩 shrinkResources true,参考导入图片的处理,防止安全图片被压缩为0字节,配置proguard-rules.pro:
-keep class com.taobao.securityjni.**{*;}
-keep class com.taobao.wireless.security.**{*;}
-keep class com.ut.secbody.**{*;}
-keep class com.taobao.dp.**{*;}
-keep class com.alibaba.wireless.security.**{*;}
-keep class com.alibaba.verificationsdk.**{*;}
-keep interface com.alibaba.verificationsdk.ui.IActivityCallback
7.SDK API
7.1 SDK初始化:
- 初始化负责完成整个数据风控安全组件的全局初始化。初始化是线程安全的,初始化调用只需要进行一次,无需重复调用;
- 接口详情:
7.2 获取数据风控wtoken
- 获取wtoken后,服务端用wtoken为入参调用风险识别;
- 使用场景:在需要使用数据风控的场景,如注册、登陆、活动页面,可以在用户点击“注册”、“登陆”等业务按钮、业务逻辑处理前获得该token;
- 接口详情:
iOS SDK集成配置
1.生成SDK
出于对应用数据安全考虑,数据风控生成的SDK会与应用强绑定。如果此前使用Debug版应用 生成SDK需要在应用发布前使用Release版应用重新上传,并替换原有SDK。
- 上传Release版ipa;
- 点击“生成SDK”按钮,生成SDK;
- 生成完SDK后,SDK自动下载到本地;
2.导入SDK
2.1 导入Framework
a. 把SDK中的framework文件添加到项目目录中
MSAuthSDK.framework SecurityGuardSDK.framework SGMain.framework``SGNoCaptcha.framework``SGSecurityBody.framework
b. 将MSADefaultImages.bundle和MSADefaultLocale.bundle加入资源中
c. 如果sdk中带有xib,需要将所有xib加入资源中
2.2 导入图片
a. 解压第1点中生成的SDK,获得文件:yw1222 *.jpg;
b. 把这个文件导入到项目目录下,如下图:
2.3 依赖 CocoaPods:
不使用pod可以直接使用sdk内压缩包:
pod 'SVProgressHUD', '~> 1.1'
pod 'SSZipArchive', '~> 1.1'
2.4 添加系统依赖库
在项目中添加其他依赖的framework,如下图:
2.5 其他项目配置
- 在Build Setting中的Other Linker Flags中添加“-ObjC”选项,如下图:
- 在info.plist中设置,开放http请求:
3.SDK API<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key><true/>
</dict>
3.1 SDK初始化: - 初始化负责完成整个数据风控安全组件的全局初始化。初始化是线程安全的,初始化调用只需要进行一次,无需重复调用;
- 接口详情:
3.2 获取数据风控wtoken
- 获取wtoken后,服务端用wtoken为入参调用风险识别;
- 使用场景:在需要使用数据风控的场景,如注册、登陆、活动页面,可以在用户点击“注册”、“登陆”等业务按钮、业务逻辑处理前获得该token;
- 接口详情:
服务端API调用
- 下载对应语言的SDK;
- 将SDK加载到工程中;
- 参考下方的代码,开发第一步页面请求的处理类(如java的Action,Controller,Servlet等);注意填入自己的阿里云accesskey和secret;
- 参考示例代码,对运行结果进行处理;请注意对服务端出现的错误进行兼容处理。
最后更新:2016-11-23 16:04:20
上一篇:
业务风控WEB/HTML5使用说明__使用手册_数据风控-阿里云
下一篇:
滑动验证WEB/HTML5使用说明__使用手册_数据风控-阿里云
MySQLReader__Reader插件_使用手册_数据集成-阿里云
概览页介绍__用户指南_企业级分布式应用服务 EDAS-阿里云
sleep示例__示例程序_MapReduce_大数据计算服务-阿里云
云市场商品评价规则__商品评价_服务相关_云市场-阿里云
NULL值处理__分区_SQL语法参考_云数据库 OceanBase-阿里云
OSS数据源配置__数据源配置_数据同步手册_用户操作指南_大数据开发套件-阿里云
阿里云成中国云计算霸主 付费用户100万 年收入超10亿美元
枚举类型__API参考_E-MapReduce-阿里云
修改解析记录__解析管理接口_API文档_云解析-阿里云
多维分析__表操作(基于表目录树)_SQL操作_用户指南(RDBMS)_数据管理-阿里云
相关内容
常见错误说明__附录_大数据计算服务-阿里云
发送短信接口__API使用手册_短信服务-阿里云
接口文档__Android_安全组件教程_移动安全-阿里云
运营商错误码(联通)__常见问题_短信服务-阿里云
设置短信模板__使用手册_短信服务-阿里云
OSS 权限问题及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云
消息通知__操作指南_批量计算-阿里云
设备端快速接入(MQTT)__快速开始_阿里云物联网套件-阿里云
查询API调用流量数据__API管理相关接口_API_API 网关-阿里云
使用STS访问__JavaScript-SDK_SDK 参考_对象存储 OSS-阿里云