閱讀561 返回首頁    go 美食


業務風控Android/iOS使用說明__使用手冊_數據風控-阿裏雲

業務風控,包含:注冊防控、登陸防控、活動防控、消息防控和其他風險防控,通過用戶行為、軟硬件環境信息、設備指紋、業務基礎信息綜合判定用戶請求的風險程度:
注冊防控:在注冊場景提供安全防護,防止機器注冊、人工惡意注冊、注冊短信被攻擊。
登陸防控:在登陸場景提供安全防護,防止刷庫撞庫、暴力破解、可疑登陸。
活動防控:在活動場景提供安全防護,防止刷紅包、搶優惠券、黃牛搶號、黃牛刷單。
消息防控:在發帖、評論場景提供安全防護,防止批量發帖、垃圾評論。
其他風險防控:其他場景下的風險防控,防止如頻繁查機票、機器點讚、批量送禮物、虛假投票等。

係統間交互流程

app
1.風險采集:采集用戶行為、軟硬件環境信息、設備指紋信息。用戶在提交業務請求之前,需要調用數據風控sdk接口,完成風險采集;
2.提交業務請求:用戶提交業務請求如注冊、登陸請求時,需要將sdk端風控參數傳遞給服務端,風控參數包含:

  • wtoken:風險采集id

3.判斷請求風險情況:用戶服務端調用數據風控服務api,獲得請求風險結果。該步驟需要放在業務請求處理之前。
4.風險處理:根據返回的風險結果,進行風險處理。對於不同風險結果,建議處理方案:

  • 無風險:繼續做業務請求處理,如注冊、登陸處理;
  • 中風險:建議在做業務請求處理之前,讓操作者進行一定的驗證,如驗證碼、語音、短信等驗證;
  • 高風險:建議直接返回業務請求失敗,讓操作者重新再來一次。

接入流程

1.第一步,進入數據風控控製台:

  • 未開通服務,開通服務;
  • 已開通服務,進入服務管理,選擇需要的業務風控服務,點擊【創建】:創建1

2.第二步,選擇應用類型,輸入高峰期PV,點擊【下一步】:創建2

3.第三步,根據係統集成代碼的操作步驟,下載SDK,集成到APP中;服務端調用對應api,詳細操作參見下方:係統集成。集成完成,點擊【下一步】:sdk

4.第四步,係統集成完畢,發布對應的服務:創建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中增加如圖配置:Android1
    1. dependencies {
    2. compile fileTree(dir: 'libs', include: ['*.jar'])
    3. testCompile 'junit:junit:4.12'
    4. compile 'com.android.support:appcompat-v7:23.+'
    5. compile name: 'NoCaptchaSDK-external-release-5.1.17', ext: 'aar'
    6. compile name: 'SecurityBodySDK-external-release-5.1.25', ext: 'aar'
    7. compile name: 'SecurityGuardSDK-external-release-5.1.81', ext: 'aar'
    8. compile name: 'verificationsdklib', ext: 'aar'
    9. }
  • 導入jar包和so,如圖把SDK中的所有的jar包和so文件都複製到工程的libs目錄下:Android2
    注意:
    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.最後目錄顯示如下:
    1. NoCaptchaSDK-5.1.16.jar
    2. armeabi
    3. SecurityBodySDK-5.1.19.jar
    4. verificationsdklib.aar
    5. SecurityGuardSDK-5.1.58.jar
    6. x86

3.導入圖片
3.1 解壓第1點中生成的SDK,獲得文件:yw1222.jpg;
3.2 把這個文件導入到工程中resdrawable目錄下,如果沒有這個文件夾,請先創建,如下圖:
android3
左圖為AndroidStudio中安全加密圖片位置,右圖為Eclipse中安全加密圖片位置;
3.3 如果開啟混淆要檢查發布包335大小不為0, shrinkResources true會導致yw_1222_0335以及yw_1222圖片為0

  1. release {
  2. minifyEnabled true // 是否混淆
  3. shrinkResources true // <<<會導致335或者122圖片為0
  4. proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
  5. }

解決方案一
放棄資源壓縮
解決方案二
參考google 關於shrink resource
新建 res/raw/keep.xml後加入如下內容:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <resources xmlns:tools="https://schemas.android.com/tools"
  3. 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文件:

  1. allprojects {
  2. repositories {
  3. jcenter()
  4. flatDir { //<------添加三行
  5. dirs 'libs' //<------
  6. } //<------
  7. }
  8. }

4.2 修改application子工程的build.gradle文件

  1. dependencies {
  2. compile fileTree(include: ['*.jar'], dir: 'libs')
  3. compile(name:'verificationsdklib', ext:'aar')
  4. }

4.3 修改application子工程的build.gradle文件,增加jnilib

  1. sourceSets {
  2. main {
  3. jniLibs.srcDirs = ['libs']
  4. }
  5. }

4.4 AndroidManifest.xml 加入驗證SDK入口Activity聲明

  1. <activity android:name="com.alibaba.verificationsdk.ui.VerifyActivity"
  2. android:screenOrientation="portrait"
  3. android:theme="@android:style/Theme.NoTitleBar"
  4. android:windowSoftInputMode="adjustResize" >
  5. </activity>

5.Eclispe修改項目文件5.1 添加權限信息

  • 如果是AndroidStudio項目,則不需要在項目中額外配置權限,因為在aar中我們自己已經聲明了權限;
  • 如果是Eclipse項目,需要在AndroidManifest.xml文件中添加下列權限配置:
    1. <uses-permission android:name="android.permission.INTERNET" />
    2. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    3. <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    4. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    5. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    6. <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    7. <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    8. <uses-permission android:name="android.permission.WRITE_SETTINGS" />
    9. <uses-permission android:name="android.permission.BLUETOOTH" />
    10. <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    5.2 AndroidManifest.xml 加入驗證SDK入口Activity聲明
    1. <activity android:name="com.alibaba.verificationsdk.ui.VerifyActivity"
    2. android:screenOrientation="portrait"
    3. android:theme="@android:style/Theme.NoTitleBar"
    4. android:windowSoftInputMode="adjustResize" >
    5. </activity>

6.關於混淆

如果設置資源壓縮 shrinkResources true,參考導入圖片的處理,防止安全圖片被壓縮為0字節,配置proguard-rules.pro:

  1. -keep class com.taobao.securityjni.**{*;}
  2. -keep class com.taobao.wireless.security.**{*;}
  3. -keep class com.ut.secbody.**{*;}
  4. -keep class com.taobao.dp.**{*;}
  5. -keep class com.alibaba.wireless.security.**{*;}
  6. -keep class com.alibaba.verificationsdk.**{*;}
  7. -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文件添加到項目目錄中

  1. 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. 把這個文件導入到項目目錄下,如下圖:
ios1
2.3 依賴 CocoaPods:
不使用pod可以直接使用sdk內壓縮包:

  1. pod 'SVProgressHUD', '~> 1.1'
  2. pod 'SSZipArchive', '~> 1.1'

2.4 添加係統依賴庫
在項目中添加其他依賴的framework,如下圖:ios2
2.5 其他項目配置

  • 在Build Setting中的Other Linker Flags中添加“-ObjC”選項,如下圖:ios3
  • 在info.plist中設置,開放http請求:
    1. <key>NSAppTransportSecurity</key>
    2. <dict>
    3. <key>NSAllowsArbitraryLoads</key><true/>
    4. </dict>
    3.SDK API
    3.1 SDK初始化:
  • 初始化負責完成整個數據風控安全組件的全局初始化。初始化是線程安全的,初始化調用隻需要進行一次,無需重複調用;
  • 接口詳情:

3.2 獲取數據風控wtoken

  • 獲取wtoken後,服務端用wtoken為入參調用風險識別;
  • 使用場景:在需要使用數據風控的場景,如注冊、登陸、活動頁麵,可以在用戶點擊“注冊”、“登陸”等業務按鈕、業務邏輯處理前獲得該token;
  • 接口詳情:

服務端API調用

  1. 下載對應語言的SDK;
  2. 將SDK加載到工程中;
  3. 參考下方的代碼,開發第一步頁麵請求的處理類(如java的Action,Controller,Servlet等);注意填入自己的阿裏雲accesskey和secret;
  4. 參考示例代碼,對運行結果進行處理;請注意對服務端出現的錯誤進行兼容處理。

最後更新:2016-11-23 16:04:20

  上一篇:go 業務風控WEB/HTML5使用說明__使用手冊_數據風控-阿裏雲
  下一篇:go 滑動驗證WEB/HTML5使用說明__使用手冊_數據風控-阿裏雲