All Products
Search
Document Center

Web Application Firewall:Integrasikan Anti-Bot SDK ke dalam aplikasi iOS

Last Updated:Apr 01, 2026

Anti-Bot SDK menandatangani setiap permintaan dari aplikasi iOS Anda. WAF memverifikasi tanda tangan tersebut untuk mendeteksi dan memblokir lalu lintas bot sebelum mencapai server Anda.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

  • iOS 9.0 atau versi lebih baru pada perangkat target Anda

  • App Protection yang telah dibeli dan diaktifkan. Lihat Prosedur mengaktifkan App Protection

  • Paket SDK iOS (AliTigerTally_IDFA.framework atau AliTigerTally_NOIDFA.framework). Ajukan ticket untuk mendapatkan SDK

  • Kunci aplikasi (app key) Anda. Untuk mendapatkannya, login ke Konsol WAF, buka Protection Configurations > Website Protection, buka tab Bot Management, aktifkan App Protection, lalu klik Obtain and Copy Appkey

Setiap Akun Alibaba Cloud memiliki satu app key yang digunakan bersama oleh semua nama domain dalam instans WAF Anda. App key yang sama berlaku untuk aplikasi Android maupun iOS.
App Protection

Contoh app key:

****OpKLvM6zliu6KopyHIhmneb_****u4ekci2W8i6F9vrgpEezqAzEzj2ANrVUhvAXMwYzgY_****vc51aEQlRovkRoUhRlVsf4IzO9dZp6nN_****Wz8pk2TDLuMo4pVIQvGaxH3vrsnSQiK****

Pilih versi SDK

SDK tersedia dalam dua versi tergantung pada apakah aplikasi Anda menggunakan Identifier for Advertisers (IDFA):

VersiFile frameworkGunakan saat
IDFAAliTigerTally_IDFA.frameworkAplikasi Anda menggunakan IDFA
Non-IDFAAliTigerTally_NOIDFA.frameworkAplikasi Anda tidak menggunakan IDFA

Cara kerja

  1. SDK menandatangani badan permintaan menggunakan vmpSign dan mengembalikan token tanda tangan (wToken).

  2. Aplikasi Anda melampirkan wToken ke Header permintaan HTTP dan mengirim permintaan tersebut.

  3. WAF mengurai wToken pada setiap permintaan inbound, memblokir lalu lintas berbahaya, dan meneruskan permintaan sah ke server Anda.

Tandatangani permintaan pada event penting seperti login, pengiriman pembayaran, atau tindakan apa pun yang memerlukan perlindungan.

Integrasikan SDK

Langkah 1: Siapkan proyek Xcode

Buka proyek iOS Anda di Xcode dan salin framework SDK ke direktori proyek.

Langkah 2: Tambahkan library dependensi

Tambahkan library berikut ke target Anda:

LibraryVersi Non-IDFAVersi IDFA
libc++.tbdDiperlukanDiperlukan
CoreTelephony.frameworkDiperlukanDiperlukan
libresolv.9.tbdDiperlukanDiperlukan
AdSupport.frameworkTidak diperlukanDiperlukan

Langkah 3: Tambahkan flag linker -ObjC

Pada Build Settings, tambahkan -ObjC ke Other Linker Flags.

Langkah 4: Impor header SDK

Objective-C — tambahkan impor ke file sumber mana pun yang memanggil SDK:

// Versi Non-IDFA
#import <AliTigerTally_NOIDFA/AliTigerTally.h>

// Versi IDFA
#import <AliTigerTally_IDFA/AliTigerTally.h>

Swift — buat file bridging header dan tambahkan impor:

#ifndef TigerTally_sdk_Swift_h
#define TigerTally_sdk_Swift_h

// Versi Non-IDFA
#import <AliTigerTally_NOIDFA/AliTigerTally.h>
// Versi IDFA
#import <AliTigerTally_IDFA/AliTigerTally.h>

#endif /* TigerTally_sdk_Swift_h */

Kemudian atur path bridging header di Build Settings > Objective-C Bridging Header.

Langkah 5: Atur user ID (opsional)

Panggil setAccount untuk mengaitkan user ID dengan permintaan SDK. Hal ini memungkinkan Anda membuat kebijakan perlindungan WAF yang lebih terperinci. Untuk pengguna tamu, lewati pemanggilan ini dan langsung lanjutkan ke initialize.

Sintaks:

-(void)setAccount:(NSString*)account
ParameterTipeDeskripsi
accountNSString*User ID. Gunakan nilai yang telah dimasking, bukan identifier mentah.

Objective-C:

// Gunakan user ID yang telah dimasking
[[AliTigerTally sharedInstance] setAccount:@"testAccount"];

Swift:

AliTigerTally.sharedInstance().setAccount("testAccount")

Langkah 6: Inisialisasi SDK

Panggil initialize dengan app key Anda untuk menjalankan SDK dan mengumpulkan informasi perangkat. Panggil kembali kapan saja Anda perlu merefresh informasi perangkat.

Sintaks:

-(bool)initialize:(NSString*)appKey
ParameterTipeDeskripsi
appKeyNSString*Kunci otentikasi SDK Anda.

Mengembalikan true jika berhasil, false jika gagal.

Objective-C:

NSString *appKey = @"****OpKLvM6zliu6KopyHIhmneb_****u4ekci2W8i6F9vrgpEezqAzEzj2ANrVUhvAXMwYzgY_****vc51aEQlRovkRoUhRlVsf4IzO9dZp6nN_****Wz8pk2TDLuMo4pVIQvGaxH3vrsnSQiK****";
if ([[AliTigerTally sharedInstance] initialize:appKey]) {
    NSLog(@"Inisialisasi berhasil.");
} else {
    NSLog(@"Inisialisasi gagal.");
}

Swift:

let binit = AliTigerTally.sharedInstance().initialize("****OpKLvM6zliu6KopyHIhmneb_****u4ekci2W8i6F9vrgpEezqAzEzj2ANrVUhvAXMwYzgY_****vc51aEQlRovkRoUhRlVsf4IzO9dZp6nN_****Wz8pk2TDLuMo4pVIQvGaxH3vrsnSQiK****")
if binit {
    NSLog("Inisialisasi berhasil.")
} else {
    NSLog("Inisialisasi gagal.")
}

Langkah 7: Tandatangani permintaan

Panggil vmpSign untuk menghasilkan token tanda tangan untuk badan permintaan.

Sintaks:

-(NSString*)vmpSign:(NSData*)inputBody
ParameterTipeDeskripsi
inputBodyNSData*Badan permintaan yang akan ditandatangani.

Mengembalikan string tanda tangan (NSString*) jika berhasil. Tanda tangan ini disebut sebagai wToken.

Nilai kembali error:

Nilai kembaliPenyebabPerbaikan
you must call initializeinitialize belum dipanggilPanggil initialize sebelum vmpSign
you must input bodyinputBody tidak diberikanBerikan badan permintaan saat memanggil vmpSign
NULLInisialisasi belum selesaiPanggil vmpSign lagi

Objective-C:

if (![[AliTigerTally sharedInstance] initialize:@"****OpKLvM6zliu6KopyHIhmneb_****u4ekci2W8i6F9vrgpEezqAzEzj2ANrVUhvAXMwYzgY_****vc51aEQlRovkRoUhRlVsf4IzO9dZp6nN_****Wz8pk2TDLuMo4pVIQvGaxH3vrsnSQiK****"]) {
    NSLog(@"Inisialisasi gagal.");
    return;
}
NSString *signBody = @"hello";
NSString *wToken = [[AliTigerTally sharedInstance] vmpSign:[signBody dataUsingEncoding:NSUTF8StringEncoding]];
NSLog(@"wToken: %@", wToken);

Swift:

if !AliTigerTally.sharedInstance().initialize("****OpKLvM6zliu6KopyHIhmneb_****u4ekci2W8i6F9vrgpEezqAzEzj2ANrVUhvAXMwYzgY_****vc51aEQlRovkRoUhRlVsf4IzO9dZp6nN_****Wz8pk2TDLuMo4pVIQvGaxH3vrsnSQiK****") {
    NSLog("Inisialisasi gagal.")
    return
}
let signBody = "hello"
let token = AliTigerTally.sharedInstance().vmpSign(signData)
NSLog(token)

Langkah 8: Kirim permintaan yang telah ditandatangani

Tambahkan wToken ke Header permintaan HTTP dan kirim permintaan tersebut.

Objective-C:

NSURL *url = [NSURL URLWithString:@"https://xxxxxx/test?id=123"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url
                                                       cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                   timeoutInterval:10];
[request setValue:wToken forHTTPHeaderField:@"wToken"];
request.HTTPMethod = @"post";
request.HTTPBody = [signBody dataUsingEncoding:NSUTF8StringEncoding];

NSURLSessionDataTask *dataTask = [[NSURLSession sharedSession]
    dataTaskWithRequest:request
      completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
          if (error) {
              NSLog(@"Permintaan gagal: %@", error);
          } else {
              NSLog(@"Permintaan terkirim.");
          }
      }];
[dataTask resume];

Swift:

guard let url = URL(string: "https://xxxxxx/test?id=123") else { return }
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.addValue(token, forHTTPHeaderField: "wToken")

URLSession.shared.dataTask(with: request) { data, response, error in
    if let error = error {
        print("Permintaan gagal: \(error)")
    } else {
        print("Permintaan terkirim.")
    }
}.resume()

(Opsional) Uji dengan proyek contoh

Sebelum mengintegrasikan ke aplikasi produksi Anda, buat proyek iOS uji di Xcode untuk memverifikasi langkah-langkah integrasi.

Gambar berikut menunjukkan proyek uji contoh bernama TigerTally_sdk_test.

Test project