All Products
Search
Document Center

Web Application Firewall:CreateProtectionModuleRule

Last Updated:May 29, 2026

Membuat aturan perlindungan untuk modul perlindungan WAF.

Deskripsi operasi

Gunakan parameter DefenseType untuk menentukan modul perlindungan target. Modul yang didukung meliputi: pencegahan intrusi web, keamanan data, perlindungan lanjutan, manajemen bot, serta kontrol akses dan pembatasan kecepatan. Struktur parameter Rule bervariasi tergantung pada modul—lihat Referensi Parameter Rule di bawah ini.

Batasan

Operasi ini tunduk pada batas laju 10 panggilan per detik per akun. Melebihi batas ini akan memicu throttling dan dapat memengaruhi layanan Anda.

Debugging

Coba operasi ini di OpenAPI Explorer. OpenAPI Explorer menandatangani permintaan secara otomatis dan menghasilkan contoh kode untuk berbagai SDK.

Parameter permintaan

ParameterTypeRequiredContohDeskripsi
ActionStringYaCreateProtectionModuleRuleOperasi yang akan dilakukan. Tetapkan ke CreateProtectionModuleRule.
DomainStringYawww.example.comNama domain tempat Anda ingin membuat aturan perlindungan. Untuk mendapatkan daftar nama domain yang dilindungi, panggil operasi DescribeDomainNames.
DefenseTypeStringYaac_customModul perlindungan tempat Anda ingin membuat aturan. Nilai yang valid: waf-codec (mesin aturan perlindungan), tamperproof (pencegahan perubahan situs web), dlp (pencegahan kebocoran data), ng_account (keamanan akun), antifraud (kontrol risiko data), antifraud_js (plug-in JavaScript kontrol risiko data), bot_algorithm (algoritma cerdas, manajemen bot), bot_wxbb_pkg (perlindungan versi, perlindungan aplikasi), bot_wxbb (perlindungan path, perlindungan aplikasi), ac_custom (kebijakan perlindungan kustom), whitelist (daftar putih situs web).
RuleStringYa{"action":"monitor","name":"test","scene":"custom_acl","conditions":[{"opCode":1,"key":"URL","values":"/example"}]}Konfigurasi aturan, diformat sebagai string JSON. Parameter bervariasi tergantung DefenseType. Untuk detailnya, lihat Referensi parameter Rule.
InstanceIdStringYawaf-cn-0xldbqt****ID instans WAF. Untuk mendapatkan ID instans, panggil operasi DescribeInstanceInfo.

Untuk parameter permintaan umum, lihat Parameter Umum.

Referensi parameter Rule

Parameter Rule berupa string JSON. Strukturnya bergantung pada nilai DefenseType.

waf-codec — Mesin aturan perlindungan

ParameterTypeRequiredDeskripsi
codecListArrayYaPengaturan decoding yang diaktifkan. Lihat nilai yang valid di konsol WAF.

Contoh:

{
  "codecList": ["url", "base64"]
}

tamperproof — Pencegahan perubahan situs web

ParameterTypeRequiredDeskripsi
nameStringYaNama aturan.
uriStringYaURL yang akan dilindungi.

Contoh:

{
  "name": "example",
  "uri": "http://www.aliyundoc.com/example"
}

dlp — Pencegahan kebocoran data

ParameterTypeRequiredDeskripsi
nameStringYaNama aturan.
conditionsArrayYaKondisi pencocokan. Anda dapat menentukan hingga dua kondisi dalam relasi AND. Setiap kondisi adalah objek JSON — lihat tabel di bawah ini.
actionIntegerYaAksi yang diambil saat aturan cocok. Nilai yang valid: 3 (hasilkan peringatan), 10 (filter data sensitif; hanya berlaku jika key adalah 10), 11 (kembalikan halaman blokir bawaan; hanya berlaku jika key adalah 11).

objek kondisi:

FieldTypeDeskripsi
keyIntegerItem pencocokan. Nilai yang valid: 0 (URL), 10 (data sensitif), 11 (kode status HTTP). Anda tidak dapat menentukan 10 dan 11 dalam aturan yang sama.
operationIntegerLogika pencocokan. Tetapkan ke 1 (termasuk).
valueArrayNilai pencocokan, diformat sebagai array JSON. Setiap elemen berisi v (untuk key 0 atau 11) atau k (untuk key 10). Untuk key 11, nilai v yang valid adalah: 400, 401, 402, 403, 404, 405–499, 500, 501, 502, 503, 504, 505–599. Untuk key 10, nilai k yang valid adalah: 100 (nomor KTP), 101 (nomor kartu kredit), 102 (nomor telepon), 103 (kata sensitif default).

Contoh:

{
  "name": "example",
  "conditions": [
    {"key": 11, "operation": 1, "value": [{"v": 401}]},
    {"key": "0", "operation": 1, "value": [{"v": "www.aliyundoc.com"}]}
  ],
  "action": 3
}

ng_account — Keamanan akun

ParameterTypeRequiredDeskripsi
url_pathStringYaPath URL yang akan dipantau. Harus diawali dengan garis miring (/).
methodStringYaMetode permintaan HTTP yang akan dideteksi. Nilai yang valid: POST, GET, PUT, DELETE. Pisahkan beberapa nilai dengan koma.
account_leftStringYaIdentifier bidang akun.
password_leftStringTidakIdentifier bidang password.
actionStringYaAksi saat aturan cocok. Nilai yang valid: monitor (hasilkan peringatan), block (blokir permintaan).

Contoh:

{
  "url_path": "/example",
  "method": "POST,GET,PUT,DELETE",
  "account_left": "aaa",
  "password_left": "123",
  "action": "monitor"
}

antifraud — Kontrol risiko data

ParameterTypeRequiredDeskripsi
uriStringYaURL tempat kontrol risiko data diterapkan.

Contoh:

{
  "uri": "http://1.example.com/example"
}

antifraud_js — Kontrol risiko data (plug-in JavaScript)

ParameterTypeRequiredDeskripsi
uriStringYaPath URL untuk injeksi plug-in JavaScript. Harus diawali dengan garis miring (/). WAF menyuntikkan plug-in ke semua halaman di bawah path ini.

Contoh:

{
  "uri": "/example/example"
}

bot_algorithm — Algoritma cerdas (manajemen bot)

ParameterTypeRequiredDeskripsi
nameStringYaNama aturan.
algorithmNameStringYaAlgoritma deteksi. Nilai yang valid: RR (crawler sumber daya khusus), PR (crawler path khusus), DPR (crawler round-robin parameter), SR (crawler alamat IP dinamis), IND (crawler perangkat proxy), Periodicity (crawler periodik).
timeIntervalIntegerYaInterval deteksi, dalam detik. Nilai yang valid: 30, 60, 120, 300, 600.
actionStringYaAksi saat aturan cocok. Nilai yang valid: monitor (pantau permintaan), captcha (verifikasi CAPTCHA slider), js (verifikasi JavaScript), block (blokir permintaan). Jika Anda menetapkan ini ke block, Anda juga harus menentukan blocktime.
blocktimeIntegerTidakDurasi pemblokiran, dalam menit. Nilai yang valid: 1–600. Diperlukan saat action adalah block.
configStringYaKonfigurasi algoritma, diformat sebagai string JSON. Parameter bervariasi tergantung algorithmName — lihat tabel di bawah ini.

Parameter config berdasarkan algorithmName:

RR — Crawler Sumber Daya Khusus:

FieldTypeRequiredDeskripsi
resourceTypeIntegerTidakJenis sumber daya. Nilai yang valid: 1 (sumber daya dinamis), 2 (sumber daya statis), -1 (kustom; tentukan ekstensi di field extensions, dipisahkan koma, misalnya css,jpg,xls).
minRequestCountPerIpIntegerYaJumlah minimum permintaan dari alamat IP sebelum WAF mengevaluasinya. Nilai yang valid: 5–10000.
minRatioFloatYaRasio ambang batas permintaan yang cocok. Jika rasio aktual melebihi nilai ini, IP ditandai sebagai berisiko. Nilai yang valid: 0,01–1.

PR — Crawler Path Khusus:

FieldTypeRequiredDeskripsi
keyPathConfigurationArrayTidakPath URL yang akan dipantau. Maksimal 10 path. Setiap entri berisi: method (POST, GET, PUT, DELETE, HEAD, OPTIONS), url (kata kunci path, harus diawali /), matchType (all=pencocokan eksak, prefix=pencocokan awalan, regex=pencocokan ekspresi reguler).
minRequestCountPerIpIntegerYaJumlah minimum permintaan dari alamat IP sebelum WAF mengevaluasinya. Nilai yang valid: 5–10000.
minRatioFloatYaRasio ambang batas permintaan yang cocok. Nilai yang valid: 0,01–1.

DPR — Crawler Round-Robin Parameter:

FieldTypeRequiredDeskripsi
methodStringYaMetode permintaan HTTP. Nilai yang valid: POST, GET, PUT, DELETE, HEAD, OPTIONS.
urlPatternStringYaPola path parameter kunci. Harus diawali /. Lampirkan setiap parameter kunci dengan kurung kurawal, contohnya: /company/{}/{}/{}/user.php?uid={}.
minRequestCountPerIpIntegerYaJumlah minimum permintaan dari alamat IP sebelum WAF mengevaluasinya. Nilai yang valid: 5–10000.
minRatioFloatYaRasio ambang batas permintaan yang menggunakan parameter kunci tertentu. Nilai yang valid: 0,01–1.

SR — Crawler Alamat IP Dinamis:

FieldTypeRequiredDeskripsi
maxRequestCountPerSrSessionIntegerYaAmbang batas permintaan per sesi. Sesi dengan jumlah permintaan lebih sedikit dari nilai ini dianggap abnormal. Nilai yang valid: 1–8.
minSrSessionCountPerIpIntegerYaJumlah minimum sesi abnormal dari alamat IP untuk menandainya sebagai berisiko. Nilai yang valid: 5–300.

IND — Crawler perangkat proxy:

FieldTypeRequiredDeskripsi
minIpCountIntegerYaJumlah minimum alamat IP yang harus diakses oleh perangkat yang terhubung Wi-Fi untuk ditandai sebagai berbahaya. Nilai yang valid: 5–500.
keyPathConfigurationArrayTidakPath URL yang akan dipantau. Maksimal 10 path. Struktur sama seperti keyPathConfiguration milik PR.

Periodicity — Crawler Periodik:

FieldTypeRequiredDeskripsi
minRequestCountPerIpIntegerYaJumlah minimum permintaan dari alamat IP sebelum WAF mengevaluasinya. Nilai yang valid: 5–10000.
levelIntegerYaTingkat periodisitas dalam pola akses. Nilai yang valid: 0 (jelas), 1 (sedang), 2 (lemah).

Contoh (algoritma IND):

{
  "name": "Identifikasi crawler untuk perangkat proxy",
  "algorithmName": "IND",
  "timeInterval": "60",
  "action": "monitor",
  "config": {
    "minIpCount": 5,
    "keyPathConfiguration": [{"url": "/index", "method": "GET", "matchType": "prefix"}]
  }
}

bot_wxbb_pkg — Perlindungan versi (perlindungan aplikasi)

ParameterTypeRequiredDeskripsi
nameStringYaNama aturan.
actionStringYaAksi saat aturan cocok. Nilai yang valid: test (pantau permintaan), close (blokir permintaan).
nameListArrayYaInformasi versi untuk paket yang valid. Maksimal 5 paket. Setiap entri berisi: name (nama paket, wajib, string) dan signList (tanda tangan paket, wajib, array, maksimal 15 tanda tangan).

Contoh:

{
  "name": "test",
  "action": "close",
  "nameList": [
    {
      "name": "apk-xxxx",
      "signList": ["xxxxxx", "xxxxx", "xxxx", "xx"]
    }
  ]
}

bot_wxbb — Perlindungan path (perlindungan aplikasi)

ParameterTypeRequiredDeskripsi
nameStringYaNama aturan.
uriStringYaKata kunci path URL yang akan dilindungi. Harus diawali dengan garis miring (/).
matchTypeStringYaMetode pencocokan. Nilai yang valid: all (pencocokan eksak), prefix (pencocokan awalan), regex (pencocokan ekspresi reguler).
argStringYaParameter yang disertakan dalam pencocokan path URL, digunakan bersama dengan matchType.
actionStringYaAksi saat aturan cocok. Nilai yang valid: test (pantau permintaan), close (blokir permintaan).
hasTagBooleanYaMenentukan apakah akan menambahkan bidang tanda tangan kustom. Jika ditetapkan ke true, Anda juga harus menentukan wxbbVmpFieldType dan wxbbVmpFieldValue.
wxbbVmpFieldTypeIntegerTidakJenis bidang tanda tangan kustom. Diperlukan saat hasTag adalah true. Nilai yang valid: 0 (header), 1 (parameter), 2 (cookie).
wxbbVmpFieldValueStringTidakNilai bidang tanda tangan kustom. Diperlukan saat hasTag adalah true.
blockInvalidSignIntegerYaMenentukan apakah akan menerapkan kebijakan perlindungan default untuk tanda tangan tidak valid. Tetapkan ke 1 untuk mengaktifkan.
blockProxyIntegerTidakMenentukan apakah akan memblokir permintaan proxy. Tetapkan ke 1 untuk memblokir. Biarkan tidak ditentukan untuk melewati penegakan proxy.
blockSimulatorIntegerTidakMenentukan apakah akan memblokir permintaan simulator. Tetapkan ke 1 untuk memblokir. Biarkan tidak ditentukan untuk melewati penegakan simulator.

Contoh:

{
  "name": "test",
  "uri": "/index",
  "matchType": "all",
  "arg": "test",
  "action": "close",
  "hasTag": true,
  "wxbbVmpFieldType": 2,
  "wxbbVmpFieldValue": "test",
  "blockInvalidSign": 1,
  "blockProxy": 1
}

ac_custom — Kebijakan perlindungan kustom

Struktur parameter Rule bergantung pada field scene.

Aturan ACL (scene: custom_acl)

ParameterTypeRequiredDeskripsi
nameStringYaNama aturan.
sceneStringYaJenis kebijakan. Tetapkan ke custom_acl.
actionStringYaAksi saat aturan cocok. Nilai yang valid: monitor (pantau permintaan), captcha (verifikasi CAPTCHA slider), captcha_strict (verifikasi CAPTCHA slider ketat), js (verifikasi JavaScript), block (blokir permintaan).
conditionsArrayYaKondisi pencocokan. Maksimal 5 kondisi. Setiap kondisi berisi key, opCode, dan values — lihat tabel di bawah ini.

Field condition:

FieldTypeDeskripsi
keyStringItem pencocokan. Nilai yang valid: URL, IP, Referer, User-Agent, Params, Cookie, Content-Type, Content-Length, X-Forwarded-For, Post-Body, Http-Method, Header, URLPath.
opCodeIntegerOperator logika. Nilai yang valid: 11 (sama dengan), 10 (tidak sama dengan), 41 (sama dengan salah satu dari beberapa nilai), 50 (tidak sama dengan nilai apa pun), 1 (termasuk), 0 (tidak termasuk), 51 (termasuk salah satu dari beberapa nilai), 52 (tidak termasuk nilai apa pun), 82 (ada), 2 (tidak ada), 21 (panjang sama dengan), 22 (panjang lebih besar dari), 20 (panjang kurang dari), 60 (tidak cocok dengan ekspresi reguler), 61 (cocok dengan ekspresi reguler), 72 (cocok dengan awalan), 81 (cocok dengan akhiran), 80 (konten kosong). Operator yang tersedia bervariasi tergantung key — periksa konsol WAF untuk daftar yang akurat. Untuk detail kondisi pencocokan, lihat Fields in match conditions.
valuesStringNilai pencocokan.

Contoh:

{
  "action": "monitor",
  "name": "test",
  "scene": "custom_acl",
  "conditions": [{"opCode": 1, "key": "URL", "values": "/example"}]
}

Aturan perlindungan flood HTTP (scene: custom_cc)

ParameterTypeRequiredDeskripsi
nameStringYaNama aturan.
sceneStringYaJenis kebijakan. Tetapkan ke custom_cc.
conditionsArrayYaKondisi pencocokan. Maksimal 5 kondisi. Struktur sama seperti aturan ACL.
actionStringYaAksi saat aturan cocok. Nilai yang valid: monitor, captcha, captcha_strict, js, block.
ratelimitObjectYaKonfigurasi batas laju. Lihat tabel di bawah ini.

bidang batas laju:

FieldTypeRequiredDeskripsi
targetStringYaObjek yang diukur laju permintaannya. Nilai yang valid: remote_addr (alamat IP), cookie.acw_tc (sesi), queryarg (parameter kustom), cookie (cookie kustom), header (header kustom).
subkeyStringTidakDiperlukan saat target adalah cookie, header, atau queryarg. Menentukan nama parameter, cookie, atau header.
intervalIntegerYaPeriode pengukuran, dalam detik.
thresholdIntegerYaJumlah maksimum permintaan yang diizinkan dari objek target dalam interval.
statusObjectTidakMemicu aturan berdasarkan frekuensi kode status HTTP. Berisi: code (wajib, integer — kode status HTTP) dan salah satu dari count (integer, 1–999999999) atau ratio (integer, 1–100). Anda tidak dapat menetapkan count dan ratio sekaligus.
scopeStringYaCakupan penerapan batas laju. Nilai yang valid: rule (objek yang cocok dengan kondisi), domain (seluruh domain).
ttlIntegerYaDurasi penerapan aksi, dalam detik. Nilai yang valid: 60–86400.

Contoh:

{
  "name": "Aturan perlindungan flood HTTP",
  "conditions": [{"opCode": 1, "key": "URL", "values": "/example"}],
  "action": "block",
  "scene": "custom_cc",
  "ratelimit": {
    "target": "remote_addr",
    "interval": 300,
    "threshold": 2000,
    "status": {
      "code": 404,
      "count": 200
    },
    "scope": "rule",
    "ttl": 1800
  }
}

whitelist — Daftar putih situs web

ParameterTypeRequiredDeskripsi
nameStringYaNama aturan.
tagsArrayYaModul perlindungan yang dilewati. Nilai harus berasal dari satu kategori daftar putih — Anda tidak dapat mencampur tag dari kategori berbeda (misalnya, regular dan cc tidak dapat digabungkan). Lihat tabel di bawah ini untuk nilai yang valid berdasarkan kategori.
regularRulesArrayTidakID aturan spesifik yang dilewati. Diperlukan saat tags mencakup regular_rule. Untuk mendapatkan ID aturan, buka Konsol WAF > Protection Rule Group > Create Rule Group. Untuk informasi lebih lanjut, lihat Customize protection rule groups.
regularTypesArrayTidakJenis aturan yang dilewati. Diperlukan saat tags mencakup regular_type. Nilai yang valid: sqli (Injeksi SQL), xss (cross-site scripting), code_exec (eksekusi kode), lfilei (local file inclusion), rfilei (remote file inclusion), webshell (webshell), vvip (aturan perlindungan kustom), other.
conditionsArrayYaKondisi pencocokan. Maksimal 5 kondisi. Struktur sama seperti aturan ACL, dengan dua operator tambahan: 30 (nilai kurang dari), 31 (nilai lebih dari).

Nilai `tags` yang valid berdasarkan kategori:

KategoriNilai yang valid
Globalwaf — lewati semua modul perlindungan
Pencegahan intrusi webregular (semua aturan), regular_rule (aturan spesifik, memerlukan regularRules), regular_type (jenis aturan spesifik, memerlukan regularTypes), deeplearning (mesin pembelajaran mendalam)
Kontrol akses dan pembatasan kecepatancc (perlindungan flood HTTP), customrule (kebijakan perlindungan kustom), blacklist (blacklist alamat IP), antiscan (perlindungan pemindaian)
Keamanan datadlp (pencegahan kebocoran data), tamperproof (pencegahan perubahan situs web), account (keamanan akun)
Manajemen botbot_intelligence (intelijen ancaman bot), bot_algorithm (identifikasi perilaku bot khas), bot_wxbb (perlindungan aplikasi), antifraud (kontrol risiko data)

Contoh:

{
  "name": "test",
  "tags": ["cc", "customrule"],
  "conditions": [{"opCode": 1, "key": "URL", "values": "/example"}]
}

Parameter respons

ParameterTypeContohDeskripsi
RequestIdStringD7861F61-5B61-46CE-A47C-6B19160D5EB0ID permintaan.

Contoh

Permintaan Contoh:

http(s)://[Endpoint]/?Action=CreateProtectionModuleRule
&Domain=www.example.com
&DefenseType=ac_custom
&Rule={"action":"monitor","name":"test","scene":"custom_acl","conditions":[{"opCode":1,"key":"URL","values":"/example"}]}
&InstanceId=waf-cn-0xldbqt****
&<Common request parameters>

Respons Sukses Contoh (XML):

HTTP/1.1 200 OK
Content-Type:application/xml

<CreateProtectionModuleRuleResponse>
    <RequestId>D7861F61-5B61-46CE-A47C-6B19160D5EB0</RequestId>
</CreateProtectionModuleRuleResponse>

Respons Sukses Contoh (JSON):

HTTP/1.1 200 OK
Content-Type:application/json

{
  "RequestId": "D7861F61-5B61-46CE-A47C-6B19160D5EB0"
}

Kode kesalahan

Untuk daftar kode kesalahan, kunjungi API Error Center.