Membuat aturan perlindungan inti web.
Coba sekarang
Test
RAM authorization
|
Action |
Access level |
Resource type |
Condition key |
Dependent action |
|
yundun-waf:CreateDefenseRule |
create |
*全部资源
|
|
None |
Parameter permintaan
|
Parameter |
Type |
Required |
Description |
Example |
| InstanceId |
string |
Yes |
ID instans Web Application Firewall (WAF). Catatan
Panggil operasi DescribeInstance untuk menanyakan ID instans WAF. |
waf_v2_public_cn-**** |
| TemplateId |
integer |
No |
ID templat aturan perlindungan. Catatan
Parameter ini wajib hanya jika Anda mengatur DefenseType ke template. |
1122 |
| DefenseScene |
string |
Yes |
Skenario tempat Anda ingin menggunakan aturan perlindungan. Jika Anda mengatur DefenseType ke template, nilai yang valid adalah:
Jika Anda mengatur DefenseType ke resource, nilai yang valid adalah:
Jika Anda mengatur DefenseType ke global, nilai yang valid adalah:
Catatan
Anda dapat mereferensikan respons kustom yang dikonfigurasi secara global dari objek yang dilindungi atau aturan. Jika Anda mengonfigurasi aturan respons kustom di tingkat berbeda, aturan dengan granularitas paling rinci akan berlaku. Prioritasnya adalah: tingkat aturan > tingkat objek yang dilindungi > halaman default. |
waf_group |
| Rules |
string |
Yes |
Konfigurasi aturan perlindungan. Tentukan string berupa array JSON. Catatan
Parameter dalam array bervariasi berdasarkan nilai DefenseScene. Untuk informasi selengkapnya, lihat Parameter aturan perlindungan. |
waf_group |
| ResourceManagerResourceGroupId |
string |
No |
ID kelompok sumber daya. |
rg-acfm***q |
| DefenseType |
string |
No |
Jenis aturan perlindungan. Nilai yang valid:
|
template |
| RegionId |
string |
No |
Wilayah tempat instans WAF ditempatkan. Nilai yang valid:
|
cn-hangzhou |
| Resource |
string |
No |
Objek yang dilindungi tempat aturan perlindungan diterapkan. Catatan
Parameter ini wajib hanya jika Anda mengatur DefenseType ke resource. |
sec****-waf |
Parameter aturan perlindungan
Aturan perlindungan berbasis templat (template)
Jika Anda mengatur DefenseType ke template, konfigurasi aturan berikut tersedia.
Aturan perlindungan dasar (waf_group)
Parameter
| Name | Type | Required | Example | Description |
| status | Integer | Yes | 1 | Status aturan perlindungan. Parameter ini hanya tersedia saat membuat aturan perlindungan. Untuk mengubah status aturan perlindungan, panggil operasi ModifyDefenseRuleStatus dan konfigurasikan parameter RuleStatus. Nilai yang valid: - 0: dinonaktifkan. - 1 (default): diaktifkan. |
| action | String | Yes | block | Aksi aturan perlindungan. Nilai yang valid: - block: Blok. - monitor: Log. |
| policyId | Long | No | 1012 | ID grup aturan perlindungan. Nilai default adalah 1012, yang menunjukkan grup aturan tingkat menengah. |
| protectionType | String | No | sema | Jenis aturan perlindungan. Nilai yang valid: - regular (default): perlindungan berbasis ekspresi reguler. - sema: perlindungan analisis semantik. |
| config | String | No | {"nonInjectionSql":1} | Konfigurasi kustom. Ini adalah string JSON. Untuk informasi selengkapnya, lihat parameter config. |
Parameter config
Jika Anda mengatur protectionType ke sema (perlindungan analisis semantik untuk aturan perlindungan dasar)
| Name | Type | Required | Example | Description |
| nonInjectionSql | Integer | Yes | 1 | Status pendeteksian serangan non-injeksi. Nilai yang valid: - 0: dinonaktifkan. - 1 (default): diaktifkan. |
Contoh
{
"DefenseScene": "waf_group",
"TemplateId": 322,
"InstanceId": "waf_cn****",
"Rules": "[{\"status\":1,\"policyId\":1012,\"action\":\"block\"},{\"status\":1,\"action\":\"block\",\"protectionType\":\"sema\",\"config\":\"{\\\"nonInjectionSql\\\":1}\"}]"
}
Aturan perlindungan inti web (waf_base)
Parameter
| Name | Type | Required | Example | Description |
| autoUpdate | Boolean | Yes | true | Menentukan apakah aturan diperbarui secara otomatis. Nilai yang valid: - true: mengaktifkan pembaruan otomatis. - false: menonaktifkan pembaruan otomatis. |
| config | Array | Yes | [{"ruleType":"system","ruleDetail":[{"ruleId":13000412,"ruleStatus":1,"ruleAction":"block"}]}] | Konfigurasi aturan yang akan dimodifikasi. Untuk informasi selengkapnya, lihat parameter config. Penting Anda dapat memanggil operasi DescribeBaseSystemRules untuk menanyakan konfigurasi aturan perlindungan sistem templat. Anda dapat memanggil operasi DescribeDefenseRules untuk menanyakan konfigurasi aturan ekspresi reguler kustom templat. |
Parameter config
| Name | Type | Required | Example | Description |
| ruleType | String | Yes | system | Jenis aturan. Nilai yang valid: - system: aturan sistem dalam perlindungan dasar. - custom: aturan ekspresi reguler kustom dalam perlindungan dasar. |
| ruleBatchOperationConfig | String | No | default | Operasi batch pada aturan. Jika Anda menentukan parameter ini, parameter RuleDetail harus kosong. Nilai yang valid: - default: mengembalikan pengaturan default. - all_on: mengaktifkan semua aturan. - all_off: menonaktifkan semua aturan. - all_block: mengatur aksi semua aturan ke Blok. - all_monitor: mengatur aksi semua aturan ke Log. |
| ruleDetail | Array | No | [{"ruleId":13000412,"ruleStatus":1,"ruleAction":"block"}]] | Konfigurasi aturan yang akan dimodifikasi. Nilainya berisi parameter berikut: - ruleId: ID aturan. - ruleStatus: status aturan. - ruleAction: aksi aturan. |
Contoh
{
"DefenseScene": "waf_base",
"TemplateId": 322,
"InstanceId": "waf_cn****",
"Rules": "[{\"autoUpdate\":true,\"config\":[{\"ruleType\":\"system\",\"ruleDetail\":[{\"ruleId\":13000412,\"ruleStatus\":1,\"ruleAction\":\"block\"}]}]}]"
}
Aturan perlindungan pemindaian (antiscan)
Parameter
| Name | Type | Required | Example | Description |
| protectionType | String | Yes | highfreq | Subjenis aturan perlindungan pemindaian. Nilai yang valid: - highfreq: perlindungan pemindaian frekuensi tinggi. - dirscan: pemblokiran penelusuran direktori. - scantools: pemblokiran pemindai. |
| status | Integer | Yes | 1 | Status aturan perlindungan. Parameter ini hanya tersedia saat membuat aturan perlindungan. Untuk mengubah status aturan perlindungan, panggil operasi ModifyDefenseRuleStatus dan konfigurasikan parameter RuleStatus. Nilai yang valid: - 0: dinonaktifkan. - 1 (default): diaktifkan. |
| action | String | Yes | block | Aksi aturan perlindungan. Nilai yang valid: - block: Blok. - monitor: Log. |
| actionExternal | JSON | No | {"responseRuleId":123444} | Konfigurasi ekstensi aksi aturan perlindungan. Parameter ini hanya tersedia untuk respons kustom. Jika Anda mengatur action ke block, Anda dapat menentukan halaman blokir kustom. |
| config | String | No | {"target":"remote_addr","interval":60,"ttl":180,"count":20} | Konfigurasi kustom. Ini adalah string JSON. Untuk informasi selengkapnya, lihat parameter config. |
Parameter config
Jika Anda mengatur protectionType ke highfreq (perlindungan pemindaian frekuensi tinggi)
| Name | Type | Required | Example | Description |
| target | String | Yes | remote_addr | Jenis objek statistik. Nilai yang valid: - remote_addr (default): alamat IP. - cookie.acw_tc: session. - header: header kustom. Jika Anda memilih nilai ini, Anda harus menentukan header yang akan dihitung di parameter subkey. - queryarg: parameter kustom. Jika Anda memilih nilai ini, Anda harus menentukan parameter kustom yang akan dihitung di parameter subkey. - cookie: cookie kustom. Jika Anda memilih nilai ini, Anda harus menentukan cookie yang akan dihitung di parameter subkey. |
| subKey | String | No | abc | Sub-fitur objek statistik. Parameter ini wajib jika Anda mengatur parameter target ke cookie, header, atau queryarg. |
| interval | Integer | No | 60 | Periode deteksi dalam detik. Nilai default adalah 60. Nilai yang valid: 5 hingga 1800. |
| ttl | Integer | No | 1800 | Durasi pemblokiran dalam detik. Nilai default adalah 1800. Nilai yang valid: 60 hingga 86400. |
| count | Integer | No | 20 | Jumlah maksimum kali aturan perlindungan dasar dapat dipicu. Nilai default adalah 20. Nilai yang valid: 3 hingga 50000. |
| ruleIdCount | Integer | No | 2 | Jumlah maksimum aturan yang dipicu. Nilai default adalah 2. Nilai yang valid: 1 hingga 50. |
Jika Anda mengatur protectionType ke dirscan (pemblokiran penelusuran direktori)
| Name | Type | Required | Example | Description |
| target | String | Yes | remote_addr | Objek statistik dan pemblokiran. Nilai yang valid: - remote_addr (default): alamat IP. - cookie.acw_tc: session. - header: header kustom. - queryarg: parameter kustom. - cookie: cookie kustom. |
| subKey | String | No | 1 | Sub-fitur objek statistik dan pemblokiran. Parameter ini wajib hanya jika Anda mengatur target ke header, queryarg, atau cookie. |
| interval | Integer | No | 60 | Periode deteksi dalam detik. Nilai default adalah 60. Nilai yang valid: 5 hingga 1800. |
| ttl | Integer | No | 1800 | Durasi pemblokiran dalam detik. Nilai default adalah 1800. Nilai yang valid: 60 hingga 86400. |
| count | Integer | No | 20 | Jumlah maksimum kali aturan perlindungan dasar dapat dipicu. Nilai default adalah 20. Nilai yang valid: 3 hingga 50000. |
| weight | Float | No | 2 | Persentase kode respons 404. Nilai default adalah 0,7. Nilai yang valid: 0,01 hingga 1,0. Nilai dapat akurat hingga dua tempat desimal. |
| uriNum | Integer | No | 2 | Jumlah maksimum direktori yang tidak ada. Nilai default adalah 50. Nilai yang valid: 2 hingga 50000. |
Contoh
{
"InstanceId": "waf_v2_public_****",
"TemplateId": 2222,
"DefenseScene": "antiscan",
"Rules": "[{\"protectionType\":\"scantools\",\"action\":\"block\",\"status\":1},{\"protectionType\":\"dirscan\",\"status\":1,\"action\":\"block\",\"config\":\"{\\\"target\\\":\\\"remote_addr\\\",\\\"interval\\\":10,\\\"ttl\\\":1800,\\\"weight\\\":0.7,\\\"uriNum\\\":50,\\\"count\\\":50}\"},{\"protectionType\":\"highfreq\",\"status\":1,\"action\":\"block\",\"config\":\"{\\\"target\\\":\\\"remote_addr\\\",\\\"interval\\\":60,\\\"ttl\\\":1800,\\\"count\\\":20,\\\"ruleIdCount\\\":2}\"}]"
}
Aturan blacklist alamat IP (ip_blacklist)
Parameter
| Name | Type | Required | Example | Description |
| name | String | Yes | iptest | Nama aturan blacklist alamat IP. Nama dapat terdiri dari hingga 255 karakter dan boleh mengandung huruf, angka, garis bawah (_), titik (.), dan tanda hubung (-). |
| status | Integer | Yes | 1 | Status aturan perlindungan. Parameter ini hanya tersedia saat membuat aturan perlindungan. Untuk mengubah status aturan perlindungan, panggil operasi ModifyDefenseRuleStatus dan konfigurasikan parameter RuleStatus. Nilai yang valid: - 0: dinonaktifkan. - 1 (default): diaktifkan. |
| action | String | Yes | block | Aksi aturan perlindungan. Nilai yang valid: - block: Blok. - monitor: Log. |
| actionExternal | JSON | No | {"responseRuleId":123444} | Konfigurasi ekstensi aksi aturan perlindungan. Parameter ini hanya tersedia untuk respons kustom. Jika Anda mengatur action ke block, Anda dapat menentukan halaman blokir kustom. |
| remoteAddr | Array | Yes | ["1.1.XX.XX", "3.1.XX.XX/24"] | Alamat IP yang akan ditambahkan ke blacklist. Gunakan format ["ip1","ip2",...]. |
Contoh
{
"InstanceId": "waf_v2_public_****",
"TemplateId": 2222,
"DefenseScene": "ip_blacklist",
"Rules": "[{\"name\":\"iptest1\",\"remoteAddr\":[\"1.1.1.2\",\"3.3.3.3/24\"],\"action\":\"monitor\",\"status\":1},{\"name\":\"iptest2\",\"remoteAddr\":[\"4.4.4.4\",\"5.5.5.5/32\"],\"action\":\"block\",\"status\":1}]"
}
Aturan kustom (custom_acl)
Parameter
| Name | Type | Required | Example | Description |
| name | String | Yes | iptest | Nama aturan ACL kustom. Nama dapat terdiri dari hingga 255 karakter dan boleh mengandung huruf, angka, garis bawah (_), titik (.), dan tanda hubung (-). |
| status | Integer | Yes | 1 | Status aturan perlindungan. Parameter ini hanya tersedia saat membuat aturan perlindungan. Untuk mengubah status aturan perlindungan, panggil operasi ModifyDefenseRuleStatus dan konfigurasikan parameter RuleStatus. Nilai yang valid: - 0: dinonaktifkan. - 1 (default): diaktifkan. |
| action | String | Yes | block | Aksi aturan perlindungan. Nilai yang valid: - block: Blok. - monitor: Log. - js: tantangan JavaScript. - captcha: CAPTCHA slider. - captcha_strict: CAPTCHA ketat. Catatan Untuk aksi aturan perlindungan yang didukung oleh ACL kustom, lihat aksi aturan kustom yang ditampilkan di Konsol WAF. |
| actionExternal | JSON | No | {"responseRuleId":123444} | Konfigurasi ekstensi aksi aturan perlindungan. Parameter ini hanya tersedia untuk respons kustom. Jika Anda mengatur action ke block, Anda dapat menentukan halaman blokir kustom. Jika Anda mengatur action ke captcha atau captcha_strict, Anda dapat menentukan halaman CAPTCHA slider kustom. |
| conditions | Array | Yes | [{"key":"IP","opValue":"eq","values":"11.XX.XX.1"},{"key":"Header","subKey":"abc","opValue":"contains","values":"test"}] | Karakteristik trafik untuk ACL. Ini adalah string JSON yang mendukung hingga lima kondisi pencocokan. Untuk informasi selengkapnya, lihat parameter conditions. |
| ccStatus | Integer | Yes | 1 | Menentukan apakah Pembatasan laju diaktifkan. Nilai yang valid: - 0: menonaktifkan Pembatasan laju. - 1: mengaktifkan Pembatasan laju. |
| ratelimit | JSON | No | {"target":"remote_addr","interval":5,"threshold":2,"ttl":1800,"status":{"code":404,"count":2}} | Konfigurasi detail Pembatasan laju. Ini adalah string JSON. Parameter ini wajib hanya jika Anda mengatur ccStatus ke 1. Untuk informasi selengkapnya, lihat parameter ratelimit. |
| effect | String | No | rule | Cakupan Pembatasan laju. Parameter ini wajib hanya jika Anda mengatur ccStatus ke 1. Nilai yang valid: - service: Pembatasan laju diterapkan pada objek yang dilindungi. - rule: Pembatasan laju diterapkan pada satu aturan. |
| grayStatus | Integer | No | 1 | Menentukan apakah rilis canary diaktifkan untuk aturan. Nilai yang valid: - 0 (default): menonaktifkan rilis canary. - 1: mengaktifkan rilis canary. |
| grayConfig | JSON | No | {"grayTarget":"header","grayRate":80,"graySubKey":"test"} | Konfigurasi rilis canary untuk aturan. Ini adalah string JSON. Parameter ini wajib hanya jika Anda mengatur grayStatus ke 1. Untuk informasi selengkapnya, lihat parameter grayConfig. |
| timeConfig | JSON | No | {"timeScope":"period","timeZone":8,"timePeriods":[{"start":1758771729787,"end":1758816000000}]} | Konfigurasi aturan terjadwal. Ini adalah string JSON. Untuk informasi selengkapnya, lihat parameter timeConfig. |
Parameter conditions
| Name | Type | Required | Example | Description |
| key | String | Yes | IP | Bidang pencocokan. Nilai yang valid: URL, URLPath, IP, Referer, User-Agent, Params, Cookie, Content-Type, Content-Length, X-Forwarded-For, Post-Body, Http-Method, Header, Extension, Filename, Server-Port, Host, Cookie-Exact, Query-Arg, dan Post-Arg. Penting Bidang pencocokan yang didukung bervariasi berdasarkan edisi WAF. Untuk informasi selengkapnya, lihat bidang pencocokan untuk aturan kustom di Konsol WAF. |
| subKey | String | No | abc | Bidang sub-pencocokan kustom. Catatan Tidak semua bidang pencocokan (key) untuk aturan kustom memiliki bidang sub-pencocokan kustom (subKey). Untuk informasi selengkapnya tentang apakah bidang pencocokan mendukung bidang sub-pencocokan kustom, lihat hubungan antara bidang pencocokan dan bidang pencocokan kustom untuk aturan kustom di Konsol WAF. |
| opValue | String | Yes | contain | Operator logika. Nilai yang valid: - not-contain: Tidak mengandung. Untuk bidang IP, artinya alamat IP tidak berada dalam rentang yang ditentukan. - contain: Mengandung. Untuk bidang IP, artinya alamat IP berada dalam rentang yang ditentukan. - none: Tidak ada. - ne: Tidak sama dengan. - eq: Sama dengan. - lt: Kurang dari. - gt: Lebih dari. - len-lt: Memiliki panjang kurang dari. - len-eq: Memiliki panjang sama dengan. - len-gt: Memiliki panjang lebih dari. - not-match: Tidak cocok. - match-one: Sama dengan salah satu dari beberapa nilai. - all-not-match: Tidak sama dengan nilai apa pun. - all-not-contain: Tidak mengandung nilai apa pun. - contain-one: Mengandung salah satu dari beberapa nilai. - not-regex: Tidak cocok dengan ekspresi reguler. - regex: Cocok dengan ekspresi reguler. - all-not-regex: Tidak cocok dengan ekspresi reguler apa pun. - regex-one: Cocok dengan salah satu ekspresi reguler. - prefix-match: Cocok dengan awalan. - suffix-match: Cocok dengan akhiran. - empty: Kosong. - exists: Ada. - inl: Berada dalam daftar. - in-list: Berada dalam buku alamat. - not-in-list: Tidak berada dalam buku alamat. Catatan Tidak semua operator logika (opValue) dapat dikonfigurasi untuk setiap bidang pencocokan (key) aturan kustom. Untuk informasi selengkapnya tentang operator logika yang didukung oleh bidang pencocokan, lihat hubungan antara bidang pencocokan dan operator logika untuk aturan kustom di Konsol WAF. |
| values | String | Yes | abc | Konten pencocokan. Tentukan konten sesuai kebutuhan. Pisahkan beberapa nilai dengan koma (,). Catatan Nilai yang valid untuk parameter operator logika (opValue) dan konten pencocokan (values) terkait dengan bidang pencocokan (key) yang ditentukan. |
Parameter ratelimit
| Name | Type | Required | Example | Description |
| target | String | Yes | remote_addr | Jenis objek statistik. Nilai yang valid: - remote_addr (default): alamat IP. - cookie.acw_tc: session. - header: header kustom. Jika Anda memilih nilai ini, Anda harus menentukan header yang akan dihitung di parameter subkey. - queryarg: parameter kustom. Jika Anda memilih nilai ini, Anda harus menentukan parameter kustom yang akan dihitung di parameter subkey. - cookie: cookie kustom. Jika Anda memilih nilai ini, Anda harus menentukan cookie yang akan dihitung di parameter subkey. |
| subKey | String | No | abc | Sub-fitur objek statistik. Parameter ini wajib jika Anda mengatur parameter target ke cookie, header, atau queryarg. |
| interval | Integer | Yes | 60 | Periode statistik dalam detik. Parameter ini digunakan bersama parameter threshold untuk menghitung jumlah permintaan. Nilai yang valid: 1 hingga 1800. |
| threshold | Integer | Yes | 200 | Ambang batas jumlah kali objek statistik tunggal dapat mengakses alamat yang dilindungi dalam periode deteksi. |
| ttl | Integer | Yes | 1800 | Periode efektif aksi dalam detik. Nilai yang valid: 60 hingga 86400. |
| status | JSON | No | {"code":404,"count":200} | Pengaturan frekuensi kode respons. Ini adalah string JSON yang berisi parameter berikut: code: Integer. Wajib. Kode respons. count: Integer. Opsional. Ambang batas pemicu jumlah kali kode respons tertentu muncul. Aturan dipicu jika jumlah kali kode respons muncul melebihi ambang batas ini. Nilai yang valid: 2 hingga 50000. Parameter count dan ratio saling eksklusif. ratio: Integer. Opsional. Ambang batas pemicu persentase kali kode respons tertentu muncul. Aturan dipicu jika persentase kali kode respons muncul melebihi ambang batas ini. Nilai yang valid: 1 hingga 100. Parameter count dan ratio saling eksklusif. |
Parameter grayConfig
| Name | Type | Required | Example | Description |
| grayTarget | String | Yes | 80 | Jenis objek rilis canary. Nilai yang valid: - remote_addr (default): alamat IP. - cookie.acw_tc: session. - header: header kustom. Jika Anda memilih nilai ini, Anda harus menentukan header yang akan dihitung di parameter graySubKey. - queryarg: parameter kustom. Jika Anda memilih nilai ini, Anda harus menentukan parameter kustom yang akan dihitung di parameter graySubKey. - cookie: cookie kustom. Jika Anda memilih nilai ini, Anda harus menentukan cookie yang akan dihitung di parameter graySubKey. |
| graySubKey | String | No | abc | Sub-fitur objek statistik. Parameter ini wajib jika Anda mengatur parameter grayTarget ke cookie, header, atau queryarg. |
| grayRate | Integer | Yes | 20 | Persentase trafik tempat aturan berlaku. Nilai yang valid: 1 hingga 100. |
Parameter timeConfig
| Name | Type | Required | Example | Description |
| timeScope | String | Yes | period | Periode efektif aturan. Nilai yang valid: - permanent (default): Aturan berlaku permanen. - period: Aturan berlaku dalam periode waktu tertentu. - cycle: Aturan berlaku secara periodik. |
| timeZone | Integer | Yes | 8 | Zona waktu tempat aturan berlaku. Nilai default adalah 8. Nilai yang valid: -12 hingga 12. 0 menunjukkan UTC, 8 menunjukkan UTC+8, dan -8 menunjukkan UTC-8. |
| timePeriods | Array | No | [{"start":1758771729787,"end":1758816000000}] | Periode waktu tempat aturan berlaku. Parameter ini wajib jika Anda mengatur parameter timeScope ke period. Anda dapat menentukan beberapa periode waktu. - start: Long. Wajib. Waktu mulai aturan. Ini adalah stempel waktu UNIX dalam milidetik. - end: Long. Wajib. Waktu akhir aturan. Ini adalah stempel waktu UNIX dalam milidetik. |
| weekTimePeriods | Array | No | [{"day":"1","dayPeriods":[{"start":0,"end":51644084}]},{"day":"1,2,5","dayPeriods":[{"start":0,"end":42928908}]}] | Periode waktu tempat aturan berlaku secara periodik. Parameter ini wajib jika Anda mengatur parameter timeScope ke cycle. Anda dapat menentukan beberapa periode waktu. - day: String. Wajib. Siklus tempat aturan berlaku. Nilai yang valid: 1 hingga 7. Pisahkan beberapa hari dengan koma (,). Misalnya, jika Anda mengatur parameter ini ke 1, aturan berlaku setiap Senin. - dayPeriods: Array. Wajib. Periode waktu tempat aturan berlaku setiap hari. Nilainya mencakup waktu mulai start dan waktu akhir end. Anda dapat menentukan beberapa periode waktu. • start: Long. Wajib. Waktu mulai aturan setiap hari. Ini adalah stempel waktu dalam milidetik relatif terhadap 00:00 hari tersebut. Nilai yang valid: [0-86400000). • end: Long. Wajib. Waktu akhir aturan setiap hari. Ini adalah stempel waktu dalam milidetik relatif terhadap 00:00 hari tersebut. Nilai yang valid: [0-86400000). |
Contoh
{
"InstanceId": "waf_v2_public_****",
"TemplateId": 6242,
"DefenseScene": "custom_acl",
"Rules":"[{\"name\":\"acl_test\",\"action\":\"block\",\"conditions\":[{\"key\":\"URL\",\"opValue\":\"contain\",\"values\":\"abc\"}],\"ratelimit\":{\"target\":\"remote_addr\",\"interval\":5,\"threshold\":2,\"ttl\":1800,\"status\":{\"code\":404,\"count\":2}},\"ccStatus\":1,\"effect\":\"rule\",\"status\":1,\"origin\":\"custom\",\"timeConfig\":{\"timeScope\":\"cycle\",\"timeZone\":8,\"weekTimePeriods\":[{\"day\":\"1\",\"dayPeriods\":[{\"start\":0,\"end\":51644084}]},{\"day\":\"1,2,5\",\"dayPeriods\":[{\"start\":0,\"end\":42928908}]}]},\"grayStatus\":1,\"grayConfig\":{\"grayRate\":80,\"graySubKey\":\"test\",\"grayTarget\":\"header\"}}]"
}
Aturan daftar putih (whitelist)
Parameter
| Name | Type | Required | Example | Description |
| name | String | Yes | whitelistTest | Nama aturan daftar putih. Nama dapat terdiri dari hingga 255 karakter dan boleh mengandung huruf, angka, garis bawah (_), titik (.), dan tanda hubung (-). |
| status | Integer | Yes | 1 | Status aturan perlindungan. Parameter ini hanya tersedia saat membuat aturan perlindungan. Untuk mengubah status aturan perlindungan, panggil operasi ModifyDefenseRuleStatus dan konfigurasikan parameter RuleStatus. Nilai yang valid: - 0: dinonaktifkan. - 1 (default): diaktifkan. |
| conditions | Array | Yes | [{"key":"IP","opValue":"eq","values":"11.XX.XX.1"},{"key":"Header","subKey":"abc","opValue":"contains","values":"test"}] | Karakteristik trafik untuk daftar putih. Ini adalah string JSON yang mendukung hingga lima kondisi pencocokan. Untuk informasi selengkapnya, lihat parameter conditions. |
| tags | Array | Yes | ["waf", "regular"] | Daftar modul tempat daftar putih diterapkan. Gunakan format ["XX1", "XX2",...]. Nilai yang valid: - waf: semua modul. - customrule_rule: aturan kustom tertentu. - customrule: aturan kustom. - blacklist: blacklist alamat IP. - blacklist_rule: aturan blacklist alamat IP tertentu. - antiscan: perlindungan pemindaian. - regular: aturan perlindungan dasar. - regular_rule: aturan ekspresi reguler tertentu untuk perlindungan dasar. - regular_type: jenis aturan ekspresi reguler tertentu untuk perlindungan dasar. - regular_field: bidang tertentu untuk perlindungan dasar. - major_protection: perlindungan event kritis. - cc: perlindungan CC. - region_block: pemblokiran geografis. - antibot_scene: perlindungan skenario bot. - antibot_scene_rule: ID aturan perlindungan skenario bot tertentu. - antibot_scene_label: jenis aturan perlindungan skenario bot tertentu. - dlp: Pencegahan kebocoran data. - tamperproof: perlindungan manipulasi halaman web. - spike_throttle: perlindungan Pembatasan laju agregat. |
| regularRules | Array | No | [ "111111", "222222" ] | Daftar ID aturan ekspresi reguler yang tidak dideteksi. Gunakan format ["XX1", "XX2",...]. Parameter ini wajib hanya jika Anda mengatur parameter tags ke regular_rule. |
| regularTypes | Array | No | [ "xss", "css" ] | Daftar jenis aturan ekspresi reguler yang tidak dideteksi. Gunakan format ["XX1", "XX2",...]. Parameter ini wajib hanya jika Anda mengatur parameter tags ke regular_type. Nilai yang valid: - sqli: Injeksi SQL. - xss: skrip lintas situs. - code_exec: eksekusi kode. - crlf: CRLF. - lfilei: inklusi file lokal. - rfilei: penyertaan file jarak jauh. - webshell: WebShell. - csrf: CSRF. - other: lainnya. |
| regularFields | Array | No | [{"key":"URL"},{"key":"Header","subKey":"abc"}] | Daftar bidang yang tidak dideteksi oleh perlindungan dasar. Ini adalah string JSON yang mendukung hingga lima kondisi pencocokan. Untuk informasi selengkapnya, lihat parameter regularFields. Parameter ini wajib hanya jika Anda mengatur parameter tags ke regular_field. |
| customRules | Array | No | [ "111111", "222222" ] | Daftar ID aturan kustom yang tidak dideteksi. Gunakan format ["XX1", "XX2",...]. Parameter ini wajib hanya jika Anda mengatur parameter tags ke customrule_rule. |
| blacklistRules | Array | No | [ "111111", "222222" ] | Daftar ID aturan blacklist alamat IP yang tidak dideteksi. Gunakan format ["XX1", "XX2",...]. Parameter ini wajib hanya jika Anda mengatur parameter tags ke blacklist_rule. |
| botRules | Array | No | [ "111111", "222222" ] | Daftar ID aturan perlindungan skenario bot yang tidak dideteksi. Gunakan format ["XX1", "XX2",...]. Parameter ini wajib hanya jika Anda mengatur parameter tags ke antibot_scene_rule. |
| botLables | Array | No | [ "abc", "cdcc" ] | Daftar jenis aturan perlindungan skenario bot yang tidak dideteksi. Gunakan format ["XX1", "XX2",...]. Parameter ini wajib hanya jika Anda mengatur parameter tags ke antibot_scene_label. Anda dapat memanggil operasi DescribeBotRuleLabels untuk melihat informasi jenis aturan bot. |
Parameter conditions
| Name | Type | Required | Example | Description |
| key | String | Yes | IP | Bidang pencocokan. Nilai yang valid: URL, URLPath, IP, Referer, User-Agent, Params, Cookie, Content-Type, Content-Length, X-Forwarded-For, Post-Body, Http-Method, Header, Server-Port, Host, dan Query-Arg. Penting Bidang pencocokan yang didukung bervariasi berdasarkan edisi WAF. Untuk informasi selengkapnya, lihat bidang pencocokan untuk aturan daftar putih di Konsol WAF. |
| subKey | String | No | abc | Bidang sub-pencocokan kustom. Catatan Tidak semua bidang pencocokan (key) untuk aturan daftar putih memiliki bidang sub-pencocokan kustom (subKey). Untuk informasi selengkapnya tentang apakah bidang pencocokan mendukung bidang sub-pencocokan kustom, lihat hubungan antara bidang pencocokan dan bidang pencocokan kustom untuk aturan daftar putih di Konsol WAF. |
| opValue | String | Yes | contain | Operator logika. Nilai yang valid: - not-contain: Tidak mengandung. Untuk bidang IP, artinya alamat IP tidak berada dalam rentang yang ditentukan. - contain: Mengandung. Untuk bidang IP, artinya alamat IP berada dalam rentang yang ditentukan. - none: Tidak ada. - ne: Tidak sama dengan. - eq: Sama dengan. - lt: Kurang dari. - gt: Lebih dari. - len-lt: Memiliki panjang kurang dari. - len-eq: Memiliki panjang sama dengan. - len-gt: Memiliki panjang lebih dari. - not-match: Tidak cocok. - match-one: Sama dengan salah satu dari beberapa nilai. - all-not-match: Tidak sama dengan nilai apa pun. - all-not-contain: Tidak mengandung nilai apa pun. - contain-one: Mengandung salah satu dari beberapa nilai. - not-regex: Tidak cocok dengan ekspresi reguler. - regex: Cocok dengan ekspresi reguler. - all-not-regex: Tidak cocok dengan ekspresi reguler apa pun. - regex-one: Cocok dengan salah satu ekspresi reguler. - prefix-match: Cocok dengan awalan. - suffix-match: Cocok dengan akhiran. - empty: Kosong. - exists: Ada. - inl: Berada dalam daftar. - in-list: Berada dalam buku alamat. - not-in-list: Tidak berada dalam buku alamat. Catatan Tidak semua operator logika (opValue) dapat dikonfigurasi untuk setiap bidang pencocokan (key) aturan daftar putih. Untuk informasi selengkapnya tentang operator logika yang didukung oleh bidang pencocokan, lihat hubungan antara bidang pencocokan dan operator logika untuk aturan daftar putih di Konsol WAF. |
| values | String | Yes | abc | Konten pencocokan. Tentukan konten sesuai kebutuhan. Pisahkan beberapa nilai dengan koma (,). Catatan Nilai yang valid untuk operator logika (opValue) dan konten pencocokan (values) terkait dengan bidang pencocokan (key) yang ditentukan. |
Parameter regularFields
| Name | Type | Required | Example | Description |
| key | String | Yes | URL | Bidang yang tidak dideteksi. Nilai yang valid: - URL-All: semua bidang terkait URI. - URL: bidang URI tertentu. - URLPath: jalur URI. - Query-All: semua bidang terkait kueri. - Query-Arg: parameter kueri tertentu. - Cookie-All: semua bidang terkait cookie. - Cookie-Exact: nama cookie tertentu. - Header-All: semua bidang terkait header. - Header: bidang header tertentu. - Body-All: semua parameter body. |
| subKey | String | No | abc | Bidang yang ditentukan. Parameter ini wajib jika Anda mengatur bidang yang tidak dideteksi (key) ke URLPath, Query-Arg, Cookie-Exact, atau Header. |
Contoh
{
"InstanceId": "waf_v2_public_****",
"TemplateId": 9242,
"DefenseScene": "whitelist",
"Rules":"[{\"name\":\"whitelistTest\",\"tags\":[\"regular_rule\",\"customrule\"],\"status\":1,\"origin\":\"custom\",\"conditions\":[{\"key\":\"URL\",\"opValue\":\"contain\",\"values\":\"/test\"},{\"key\":\"Header\",\"opValue\":\"eq\",\"values\":\"ffff\",\"subKey\":\"abc\"}],\"regularRules\":[\"123444\",\"444444\"]}]"
}
Aturan respons kustom (custom_response)
Parameter
| Name | Type | Required | Example | Description |
| responseType | String | Yes | response_block | Jenis respons kustom. Tetapkan nilainya ke response_block, yang menunjukkan respons blokir. |
| status | Integer | Yes | 1 | Status aturan perlindungan. Parameter ini hanya tersedia saat membuat aturan perlindungan. Untuk mengubah status aturan perlindungan, panggil operasi ModifyDefenseRuleStatus dan konfigurasikan parameter RuleStatus. Nilai yang valid: - 0: dinonaktifkan. - 1 (default): diaktifkan. |
| config | String | Yes | {"responseCode":400,"responseHeaders":[{"key":"custom","value":"123"},{"key":"aaa","value":"2223"}],"responseContent":"HelloWorld"} | Konfigurasi kustom. Ini adalah string JSON. Untuk informasi selengkapnya, lihat parameter config. |
Parameter config
| Name | Type | Required | Example | Description |
| responseCode | Integer | Yes | 400 | Kode respons yang ditentukan. |
| responseHeaders | Array | No | [{"key":"custom","value":"123"},{"key":"aaaa","value":"2223"}] | Daftar header respons kustom. Ini adalah string JSON. key adalah bidang header dan value adalah nilai header. |
| responseContent | String | Yes | helloworld | Konten respons kustom. |
Contoh
{
"InstanceId": "waf_v2_public_****",
"TemplateId": 2841,
"DefenseScene": "custom_response",
"Rules":"[{\"responseType\":\"response_block\",\"config\":\"{\\\"templateName\\\":\\\"aaa\\\",\\\"responseCode\\\":\\\"400\\\",\\\"responseContent\\\":\\\"helloWorld\\\",\\\"responseHeaders\\\":[{\\\"key\\\":\\\"test1\\\",\\\"value\\\":\\\"abc\\\"}]}\",\"status\":1}]"
}
Aturan pemblokiran geografis (region_block)
Parameter
| Name | Type | Required | Example | Description |
| cnRegionList | String | No | 610000,230000 | Daftar wilayah di Tiongkok. Tentukan ["CN"] untuk memblokir wilayah di Tiongkok daratan (tidak termasuk Hong Kong (Tiongkok), Makau (Tiongkok), dan Taiwan (Tiongkok)). Pisahkan beberapa wilayah dengan koma (,). Untuk informasi selengkapnya tentang arti kode wilayah, lihat Arti kode wilayah di Tiongkok. |
| abroadRegionList | String | No | KE,KG | Daftar wilayah di luar Tiongkok. Pisahkan beberapa wilayah dengan koma (,). Anda dapat memanggil operasi DescribeIpAbroadCountryInfos untuk melihat negara dan wilayah luar negeri yang dapat diblokir. |
| status | Integer | Yes | 1 | Status aturan perlindungan. Parameter ini hanya tersedia saat membuat aturan perlindungan. Untuk mengubah status aturan perlindungan, panggil operasi ModifyDefenseRuleStatus dan konfigurasikan parameter RuleStatus. Nilai yang valid: - 0: dinonaktifkan. - 1 (default): diaktifkan. |
| action | String | Yes | block | Aksi aturan perlindungan. Nilai yang valid: - block: Blok. - monitor: Log. |
| actionExternal | JSON | No | {"responseRuleId":123444} | Konfigurasi ekstensi aksi aturan perlindungan. Parameter ini hanya tersedia untuk respons kustom. Jika Anda mengatur action ke block, Anda dapat menentukan halaman blokir kustom. Jika Anda mengatur action ke captcha atau captcha_strict, Anda dapat menentukan halaman CAPTCHA slider kustom. |
Arti kode wilayah Tiongkok
{
"110000": "Beijing",
"120000": "Tianjin",
"130000": "Hebei Province",
"140000": "Shanxi Province",
"150000": "Inner Mongolia Autonomous Region",
"210000": "Liaoning Province",
"220000": "Jilin Province",
"230000": "Heilongjiang Province",
"310000": "Shanghai",
"320000": "Jiangsu Province",
"330000": "Zhejiang Province",
"340000": "Anhui Province",
"350000": "Fujian Province",
"360000": "Jiangxi Province",
"370000": "Shandong Province",
"410000": "Henan Province",
"420000": "Hubei Province",
"430000": "Hunan Province",
"440000": "Guangdong Province",
"450000": "Guangxi Zhuang Autonomous Region",
"460000": "Hainan Province",
"500000": "Chongqing",
"510000": "Sichuan Province",
"520000": "Guizhou Province",
"530000": "Yunnan Province",
"540000": "Tibet Autonomous Region",
"610000": "Shaanxi Province",
"620000": "Gansu Province",
"630000": "Qinghai Province",
"640000": "Ningxia Hui Autonomous Region",
"650000": "Xinjiang Uygur Autonomous Region",
"MO_01": "Macao (China)",
"HK_01": "Hong Kong (China)",
"TW_01": "Taiwan (China)",
"CN": "Regions in the Chinese mainland (excluding Hong Kong (China), Macao (China), and Taiwan (China))"
}
Contoh
{
"InstanceId": "waf_v2_public_****",
"TemplateId": 2341,
"DefenseScene": "region_block",
"Rules": "[{\"cnRegionList\":\"CN,HK_01,TW_01,MO_01\",\"abroadRegionList\":\"AU,NZ\",\"action\":\"block\",\"status\":1}]"
}
Aturan perlindungan CC (cc)
Parameter
| Name | Type | Required | Example | Description |
| mode | Integer | Yes | 0 | Mode perlindungan CC. Nilai yang valid: - 0 (default): normal. - 1: darurat. |
| status | Integer | Yes | 1 | Status aturan perlindungan. Parameter ini hanya tersedia saat membuat aturan perlindungan. Untuk mengubah status aturan perlindungan, panggil operasi ModifyDefenseRuleStatus dan konfigurasikan parameter RuleStatus. Nilai yang valid: - 0: dinonaktifkan. - 1 (default): diaktifkan. |
| action | String | No | js | Aksi aturan perlindungan. Nilai yang valid: - js (default): tantangan JavaScript. - monitor: Log. |
Contoh
{
"InstanceId": "waf_v2_public_****",
"TemplateId": 2241,
"DefenseScene": "cc",
"Rules":"[{\"mode\":0,\"status\":1,\"action\":\"js\"}]"
}
Aturan perlindungan manipulasi halaman web (tamperproof)
Parameter
| Name | Type | Required | Example | Description |
| name | String | Yes | test | Nama aturan perlindungan. Nama dapat terdiri dari hingga 255 karakter dan boleh mengandung huruf, angka, garis bawah (_), titik (.), dan tanda hubung (-). |
| url | String | Yes | /abc | Alamat halaman yang di-cache. |
| ua | String | No | app | User agent yang digunakan untuk mengakses jalur tersebut. |
| protocol | String | Yes | https | Jenis protokol alamat halaman yang di-cache. Nilai yang valid: http dan https. |
| status | Integer | Yes | 1 | Status aturan perlindungan. Parameter ini hanya tersedia saat membuat aturan perlindungan. Untuk mengubah status aturan perlindungan, panggil operasi ModifyDefenseRuleStatus dan konfigurasikan parameter RuleStatus. Nilai yang valid: - 0: dinonaktifkan. - 1 (default): diaktifkan. |
Contoh
{
"InstanceId": "waf_v2_public_****",
"TemplateId": 1241,
"DefenseScene": "tamperproof",
"Rules": "[{\"name\":\"test1\",\"url\":\"www.test1.com\",\"ua\":\"firefox\",\"protocol\":\"https\",\"status\":1}]"
}
Aturan Pencegahan kebocoran data (dlp)
Parameter
| Name | Type | Required | Example | Description |
| name | String | Yes | test | Nama aturan perlindungan. Nama dapat terdiri dari hingga 255 karakter dan boleh mengandung huruf, angka, garis bawah (_), titik (.), dan tanda hubung (-). |
| conditions | Array | Yes | [{"key":"HttpCode","opValue":"contain","values":"400,401,402,403,404,405,500,501,502,503,504,505"},{"key":"URL","opValue":"contain","values":"test"}] | Kondisi pencocokan. Ini adalah string JSON yang mendukung hingga dua kondisi pencocokan. Operator logika antar kondisi adalah AND. Untuk informasi selengkapnya, lihat parameter conditions. |
| status | Integer | Yes | 1 | Status aturan perlindungan. Parameter ini hanya tersedia saat membuat aturan perlindungan. Untuk mengubah status aturan perlindungan, panggil operasi ModifyDefenseRuleStatus dan konfigurasikan parameter RuleStatus. Nilai yang valid: - 0: dinonaktifkan. - 1 (default): diaktifkan. |
| action | String | Yes | block | Aksi aturan perlindungan. Nilai yang valid: - block: Blok. Aksi ini hanya berlaku untuk skenario yang mengandung kondisi pencocokan kode respons. - monitor: Log. - filter: menyaring informasi sensitif. Aksi ini hanya berlaku untuk skenario yang mengandung kondisi pencocokan informasi sensitif. |
Parameter conditions
| Name | Type | Required | Example | Description |
| key | String | Yes | URL | Bidang pencocokan. Nilai yang valid: URL, HttpCode, dan SensitiveInfo. |
| opValue | String | Yes | contain | Operator logika. Tetapkan nilainya ke contain. |
| values | String | Yes | abc | Konten pencocokan. Pisahkan beberapa nilai dengan koma (,). Nilai yang valid untuk HttpCode adalah 400, 401, 402, 403, 404, 405 (yang merepresentasikan 405-499), 500, 501, 502, 503, 504, dan 505 (yang merepresentasikan 505-599). Nilai yang valid untuk SensitiveInfo adalah: - phone: nomor telepon. - card: kartu kredit. - id: kartu identitas. - word: kata sensitif default. |
Contoh
{
"InstanceId": "waf_v2_public_****",
"TemplateId": 5241,
"DefenseScene": "dlp",
"Rules":"[{\"name\":\"test\",\"action\":\"filter\",\"status\":1,\"conditions\":[{\"key\":\"SensitiveInfo\",\"opValue\":\"contain\",\"values\":\"id,card\"},{\"key\":\"URL\",\"opValue\":\"contain\",\"values\":\"/test.html\"}]}]"
}
Pembatasan laju agregat (spike_throttle)
Parameter
| Name | Type | Required | Example | Description |
| name | String | Yes | iptest | Nama aturan Pembatasan laju agregat. Nama dapat terdiri dari hingga 255 karakter dan boleh mengandung huruf, angka, garis bawah (_), titik (.), dan tanda hubung (-). |
| status | Integer | Yes | 1 | Status aturan perlindungan. Parameter ini hanya tersedia saat membuat aturan perlindungan. Untuk mengubah status aturan perlindungan, panggil operasi ModifyDefenseRuleStatus dan konfigurasikan parameter RuleStatus. Nilai yang valid: - 0: dinonaktifkan. - 1 (default): diaktifkan. |
| action | String | Yes | block | Aksi aturan perlindungan. Nilai yang valid: - block: Blok. - monitor: Log. |
| actionExternal | JSON | No | {"responseRuleId":123444} | Konfigurasi ekstensi aksi aturan perlindungan. Parameter ini hanya tersedia untuk respons kustom. Jika Anda mengatur action ke block, Anda dapat menentukan halaman blokir kustom. |
| conditions | Array | Yes | [{"key":"IP","opValue":"eq","values":"11.XX.XX.1"},{"key":"Header","subKey":"abc","opValue":"contains","values":"test"}] | Karakteristik trafik untuk ACL. Ini adalah string JSON yang mendukung hingga lima kondisi pencocokan. Untuk informasi selengkapnya, lihat parameter conditions. |
| cnRegionList | String | No | 610000,230000 | Daftar wilayah di Tiongkok. Tentukan ["CN"] untuk memblokir wilayah di Tiongkok daratan (tidak termasuk Hong Kong (Tiongkok), Makau (Tiongkok), dan Taiwan (Tiongkok)). Pisahkan beberapa wilayah dengan koma (,). Untuk informasi selengkapnya tentang arti kode wilayah, lihat Arti kode wilayah di Tiongkok. |
| abroadRegionList | String | No | KE,KG | Daftar wilayah di luar Tiongkok. Pisahkan beberapa wilayah dengan koma (,). Anda dapat memanggil operasi DescribeIpAbroadCountryInfos untuk melihat negara dan wilayah luar negeri yang dapat diblokir. |
| type | String | Yes | qps | Metode Pembatasan laju. Nilai yang valid: - qps: Pembatasan laju berbasis QPS. - ratio (default): Pembatasan laju berbasis persentase. |
| threshold | Integer | Yes | 500 | Ambang batas Pembatasan laju. Nilai yang valid: - Ambang batas Pembatasan laju berbasis QPS berkisar antara 1 hingga 5.000.000. Jika Anda memilih Pembatasan laju berbasis QPS (misalnya, 500 QPS), trafik yang memenuhi kondisi Pembatasan laju dan melebihi 500 QPS akan diblokir. - Ambang batas Pembatasan laju berbasis persentase berkisar antara 1 hingga 99. Jika Anda memilih Pembatasan laju berbasis persentase (misalnya, 80%), hanya 80% dari trafik yang memenuhi kondisi Pembatasan laju yang diizinkan. |
Parameter conditions
| Name | Type | Required | Example | Description |
| key | String | Yes | IP | Bidang pencocokan. Nilai yang valid: URL, URLPath, IP, Referer, User-Agent, Params, Cookie, Content-Type, Content-Length, X-Forwarded-For, Post-Body, Http-Method, dan Header. |
| subKey | String | No | abc | Bidang sub-pencocokan kustom. Catatan Tidak semua bidang pencocokan (key) untuk aturan Pembatasan laju agregat memiliki bidang sub-pencocokan kustom (subKey). Untuk informasi selengkapnya tentang apakah bidang pencocokan mendukung bidang sub-pencocokan kustom, lihat hubungan antara bidang pencocokan dan bidang pencocokan kustom untuk aturan Pembatasan laju agregat di Konsol WAF. |
| opValue | String | Yes | contain | Operator logika. Nilai yang valid: - not-contain: Tidak mengandung. Untuk bidang IP, artinya alamat IP tidak berada dalam rentang yang ditentukan. - contain: Mengandung. Untuk bidang IP, artinya alamat IP berada dalam rentang yang ditentukan. - none: Tidak ada. - ne: Tidak sama dengan. - eq: Sama dengan. - lt: Kurang dari. - gt: Lebih dari. - len-lt: Memiliki panjang kurang dari. - len-eq: Memiliki panjang sama dengan. - len-gt: Memiliki panjang lebih dari. - not-match: Tidak cocok. - match-one: Sama dengan salah satu dari beberapa nilai. - all-not-match: Tidak sama dengan nilai apa pun. - all-not-contain: Tidak mengandung nilai apa pun. - contain-one: Mengandung salah satu dari beberapa nilai. - not-regex: Tidak cocok dengan ekspresi reguler. - regex: Cocok dengan ekspresi reguler. - all-not-regex: Tidak cocok dengan ekspresi reguler apa pun. - regex-one: Cocok dengan salah satu ekspresi reguler. - prefix-match: Cocok dengan awalan. - suffix-match: Cocok dengan akhiran. - empty: Kosong. - exists: Ada. - inl: Berada dalam daftar. - in-list: Berada dalam buku alamat. - not-in-list: Tidak berada dalam buku alamat. Catatan Tidak semua operator logika (opValue) dapat dikonfigurasi untuk setiap bidang pencocokan (key) aturan Pembatasan laju agregat. Untuk informasi selengkapnya tentang operator logika yang didukung oleh bidang pencocokan, lihat hubungan antara bidang pencocokan dan operator logika untuk aturan Pembatasan laju agregat di Konsol WAF. |
| values | String | Yes | abc | Konten pencocokan. Tentukan konten sesuai kebutuhan. Pisahkan beberapa nilai dengan koma (,). Catatan Nilai yang valid untuk operator logika (opValue) dan konten pencocokan (values) terkait dengan bidang pencocokan (key) yang ditentukan. |
Arti kode wilayah Tiongkok
{
"110000": "Beijing",
"120000": "Tianjin",
"130000": "Hebei Province",
"140000": "Shanxi Province",
"150000": "Inner Mongolia Autonomous Region",
"210000": "Liaoning Province",
"220000": "Jilin Province",
"230000": "Heilongjiang Province",
"310000": "Shanghai",
"320000": "Jiangsu Province",
"330000": "Zhejiang Province",
"340000": "Anhui Province",
"350000": "Fujian Province",
"360000": "Jiangxi Province",
"370000": "Shandong Province",
"410000": "Henan Province",
"420000": "Hubei Province",
"430000": "Hunan Province",
"440000": "Guangdong Province",
"450000": "Guangxi Zhuang Autonomous Region",
"460000": "Hainan Province",
"500000": "Chongqing",
"510000": "Sichuan Province",
"520000": "Guizhou Province",
"530000": "Yunnan Province",
"540000": "Tibet Autonomous Region",
"610000": "Shaanxi Province",
"620000": "Gansu Province",
"630000": "Qinghai Province",
"640000": "Ningxia Hui Autonomous Region",
"650000": "Xinjiang Uygur Autonomous Region",
"MO_01": "Macao (China)",
"HK_01": "Hong Kong (China)",
"TW_01": "Taiwan (China)",
"CN": "Regions in the Chinese mainland (excluding Hong Kong (China), Macao (China), and Taiwan (China))"
}
Contoh
{
"InstanceId": "waf_v2_public_****",
"TemplateId": 2341,
"DefenseScene": "spike_throttle",
"Rules":"[{\"name\":\"test\",\"action\":\"monitor\",\"conditions\":[{\"key\":\"URL\",\"opValue\":\"contain-one\",\"values\":\"abctest,abctest2\"}],\"status\":1,\"type\":\"qps\",\"threshold\":1000,\"cnRegionList\":\"110000,140000\",\"abroadRegionList\":\"AD,AL\"}]"}
}
Aturan perlindungan untuk objek yang dilindungi tertentu (resource)
Jika Anda mengatur DefenseType ke resource, konfigurasi aturan berikut tersedia.
Aturan ekstraksi akun (account_identifier)
Anda hanya dapat mengonfigurasi satu konfigurasi ekstraksi untuk setiap objek yang dilindungi.
Parameter
| Name | Type | Required | Example | Description |
| accountldentifiers | Array | Yes | [ { "key": "Header","subKey": "header-test", "decodeType": "jwt", "position": "username", "priority": 1 }, { "key": "Post-Arg", "subKey": "body_test", "decodeType": "plain", "priority": 2 } ] | Daftar konfigurasi ekstraksi akun. Anda dapat menentukan hingga lima konfigurasi. Setiap konfigurasi adalah string JSON. Untuk informasi selengkapnya, lihat parameter accountIdentifiers. |
Parameter accountIdentifiers
| Name | Type | Required | Example | Description |
| key | String | Yes | Query-Arg | Posisi bidang yang akan diekstraksi. Nilai yang valid: Query-Arg, Cookie-Exact, Post-Arg, dan Header. |
| subKey | String | Yes | query-test | Bidang sub-pencocokan kustom. |
| decodeType | String | jwt | query-test | Metode autentikasi. Nilai yang valid: - plain: teks biasa. - basic: autentikasi Basic. - jwt: autentikasi Token Web JSON (JWT). Untuk autentikasi JWT, Anda harus menentukan bidang akun setelah decoding (position). |
| priority | Integer | Yes | 1 | Prioritas pencocokan konfigurasi ekstraksi. Permintaan hanya dapat mencocokkan satu kebijakan ekstraksi. Nilai yang valid: [0,20]. Nilai yang lebih kecil menunjukkan prioritas yang lebih tinggi. Nilai tidak boleh diulang. |
| position | String | No | account | Untuk autentikasi JWT, ini adalah bidang akun setelah decoding. |
Contoh
{
"DefenseScene": "account_identifier",
"Resource": "example.**.com-waf",
"DefenseType": "resource",
"InstanceId": "waf_cn****",
"Rules": "[{\"accountIdentifiers\":[{\"key\":\"Header\",\"subKey\":\"header-test\",\"decodeType\":\"jwt\",\"position\":\"username\",\"priority\":1},{\"key\":\"Post-Arg\",\"subKey\":\"body_test\",\"decodeType\":\"plain\",\"priority\":2}]}]"
}
Aturan respons kustom untuk objek yang dilindungi (custom_response)
Anda hanya dapat mengonfigurasi satu respons kustom untuk setiap objek yang dilindungi. Prioritas halaman respons adalah: tingkat aturan > tingkat objek yang dilindungi > halaman default.
Parameter
| Name | Type | Required | Example | Description |
| blockRuleId | Long | No | 1123 | ID aturan halaman blokir kustom. Ini menunjukkan bahwa ketika objek yang dilindungi memicu blokir, halaman blokir kustom dikembalikan. |
| captchaRuleId | Long | No | 1123 | ID aturan halaman CAPTCHA slider kustom. Ini menunjukkan bahwa ketika objek yang dilindungi memicu CAPTCHA slider, halaman CAPTCHA slider kustom dikembalikan. |
Contoh
{
"DefenseScene": "custom_response",
"Resource": "example.**.com-waf",
"DefenseType": "resource",
"InstanceId": "waf_cn****",
"Rules": "[{\"blockRuleId\":900000,\"captchaRuleId\":900001}]"
}
Aturan decoding untuk objek yang dilindungi (waf_codec)
Anda hanya dapat mengonfigurasi satu aturan decoding untuk setiap objek yang dilindungi.
Parameter
| Name | Type | Required | Example | Description |
| codecList | Array | Yes | ["comment","space-zip","json","xml","form","multipart","graphql","js-unicode","url","hex","html","php","java","utf7","oct"] | Jenis decoding yang akan diaktifkan. Nilai yang valid: - url: decoding URL (diaktifkan secara default dan tidak dapat dibatalkan). - js-unicode: decoding Unicode (diaktifkan secara default dan tidak dapat dibatalkan). - oct: decoding OCT (diaktifkan secara default dan tidak dapat dibatalkan). - hex: decoding heksadesimal (diaktifkan secara default dan tidak dapat dibatalkan). - comment: decoding komentar (diaktifkan secara default dan tidak dapat dibatalkan). - space-zip: decoding spasi (diaktifkan secara default dan tidak dapat dibatalkan). - multipart: parsing Multipart. - json: parsing JSON. - xml: parsing XML. - php: decoding deserialisasi PHP. - html: decoding entitas HTML. - utf7: decoding UTF-7. - base64: decoding Base64. - form: parsing Form. - gzip: dekompresi Gzip. - java: decoding deserialisasi Java. - graphql: parsing GraphQL. |
Contoh
{
"DefenseScene": "waf_codec",
"Resource": "example.**.com-waf",
"DefenseType": "resource",
"InstanceId": "waf_cn****",
"Rules": "[{\"codecList\":[\"comment\",\"space-zip\",\"json\",\"xml\",\"form\",\"multipart\",\"graphql\",\"js-unicode\",\"url\",\"hex\",\"html\",\"php\",\"java\",\"utf7\",\"gzip\",\"oct\",\"base64\"]}]"
}
Aturan perlindungan global (global)
Jika Anda mengatur DefenseType ke global, konfigurasi aturan berikut tersedia.
Aturan ekspresi reguler kustom (regular_custom)
Parameter
| Name | Type | Required | Example | Description |
| name | String | Yes | ruleTest | Nama aturan ekspresi reguler kustom. Nama dapat terdiri dari hingga 255 karakter dan boleh mengandung huruf, angka, garis bawah (_), titik (.), dan tanda hubung (-). |
| detectType | String | Yes | sqli | Jenis deteksi. Nilai yang valid: - sqli: Injeksi SQL. - xss: serangan skrip lintas situs (XSS). - cmdi: injeksi perintah OS. - expression_injection: injeksi ekspresi (termasuk ekspresi EL, SpEL, dan OGNL). - java_deserialization: deserialisasi Java. - dot_net_deserialization: deserialisasi .NET. - php_deserialization: deserialisasi PHP. - code_exec: eksekusi kode jarak jauh (RCE) (JNDI/XPATH). - ssrf: pemalsuan permintaan sisi server (SSRF). - path_traversal: penelusuran jalur. - arbitrary_file_uploading: unggah file arbitrer. - webshell: webshell. - rfilei: penyertaan file jarak jauh (RFI). - lfilei: inklusi file lokal (LFI). - protocol_violation: pelanggaran protokol. - scanner_behavior: perilaku pemindai. - logic_flaw: bug logika bisnis. - arbitrary_file_reading: baca file arbitrer. - arbitrary_file_download: unduh file arbitrer. - xxe: injeksi entitas eksternal. - csrf: pemalsuan permintaan lintas situs. - crlf: CRLF. - other: lainnya. |
| riskLevel | String | Yes | strict | Tingkat risiko. Nilai yang valid: - super_strict: Super Ketat. - strict: Ketat. - medium: Menengah. - loose: Longgar. |
| description | String | No | Rule description. | Deskripsi aturan ekspresi reguler kustom. |
| condition | Array | Yes | [{"key":"IP","opValue":"eq","values":"11.XX.XX.1"},{"key":"Header","subKey":"abc","opValue":"contains","values":"test"}] | Karakteristik trafik untuk ACL. Ini adalah string JSON yang mendukung hingga lima kondisi pencocokan. Untuk informasi selengkapnya, lihat parameter condition. |
Parameter condition
| Name | Type | Required | Example | Description |
| key | String | Yes | Query-Arg | Bidang pencocokan kustom. Nilai yang valid: File-Name, Url, Raw-Url, Request-Url, Http-Method, Directory, Query, Raw-Header, Body, Extension, Union-Args, All-Data, All-Keys, Multipart-Keys, Multipart-Values, Header-Keys, Header-Values, Post-Arg-Keys, Post-Arg-Values, Query-Arg-Keys, Query-Arg-Values, Cookie-Keys, Cookie-Values, Header, Query-Arg, Post-Arg, dan Multipart. |
| subKey | String | No | query-test | Bidang sub-pencocokan kustom. Penting Bidang sub-pencocokan hanya didukung jika bidang pencocokan adalah Header, Query-Arg, Post-Arg, atau Multipart. |
| opValue | String | Yes | contain | Operator logika. Nilai yang valid: regex, prefix-match, suffix-match, eq, dan contain. |
| values | String | Yes | abc | Konten pencocokan. Pisahkan beberapa nilai dengan koma (,). |
Contoh
{
"name": "ruleTest",
"detectType": "sqli",
"riskLevel": "strict",
"condition": [{"key": "FileName","opValue": "eq","values": "test"}]
}
Buku alamat (address_book)
Parameter
| Name | Type | Required | Example | Description |
| name | String | Yes | bookTest | Nama buku alamat. Nama dapat terdiri dari hingga 255 karakter dan boleh mengandung huruf, angka, garis bawah (_), titik (.), dan tanda hubung (-). |
| valueType | String | Yes | ip | Jenis buku alamat. Nilai yang valid: - ip: buku alamat IP. |
| description | String | No | addressbookTest | Deskripsi buku alamat. |
Contoh
{
"name": "bookTest",
"valueType": "ip",
"description": "addressbookTest"
}
Aturan respons kustom (custom_response)
Parameter
| Name | Type | Required | Example | Description |
| name | String | Yes | test | Nama aturan respons kustom. Nama dapat terdiri dari hingga 255 karakter dan boleh mengandung huruf, angka, garis bawah (_), titik (.), dan tanda hubung (-). |
| action | String | Yes | block | Aksi aturan perlindungan. Nilai yang valid: - block: Blok. - captcha: CAPTCHA slider. |
| responseCode | Integer | No | 400 | Kode respons yang ditentukan. - Parameter ini wajib untuk aturan halaman blokir kustom. - Parameter ini tidak didukung untuk aturan halaman CAPTCHA slider kustom. Nilai default adalah 200. |
| responseHeaders | Array | No | [{"key":"custom","value":"123"},{"key":"aaaa","value":"2223"}] | Daftar header respons kustom. Ini adalah string JSON. key adalah bidang header dan value adalah nilai header. |
| designType | String | No | custom | Jenis konfigurasi respons. Parameter ini wajib hanya jika Anda mengatur action ke captcha. Nilai yang valid: - custom: konfigurasi kustom. - preDefine: konfigurasi yang telah ditentukan. |
| responseContent | String | No | helloworld | Konten respons kustom. Parameter ini wajib untuk halaman CAPTCHA slider atau blokir kustom. |
| preDefineContent | Array | No | [{"language":"cn","title":"test","description":"desc","captchaColor":"#FFFF","showTraceId":false},{"language":"en","title":"titel","description":"desc","captchaColor":"#FFFF","showTraceId":false}] | Konten konfigurasi yang telah ditentukan. Parameter ini wajib jika Anda mengatur designType ke preDefine. Jika tidak, tidak diperlukan. Untuk informasi selengkapnya, lihat Parameter yang telah ditentukan. |
Parameter yang telah ditentukan
| Name | Type | Required | Example | Description |
| language | String | Yes | en | Konfigurasi bahasa. Nilai yang valid: - en: Inggris. - cn: Tiongkok. |
| icon | String | Yes | https://img.alicdn.com/imgextra/i1/O1CN01L12MaQ1ZwfYKk7Yrc_!!6000000003259-2-tps-900-594.png | Ikon. Jalur harus dapat diakses melalui Internet. |
| title | String | Yes | test_title | Judul halaman CAPTCHA slider kustom. |
| description | String | Yes | For better experience, please slide to complete the verification process before accessing the web page. | Deskripsi halaman CAPTCHA slider kustom. |
| captchaColor | String | Yes | #ff6a00 | Warna CAPTCHA slider. |
| showTraceId | boolean | Yes | true | Menentukan apakah ID log ditampilkan. Nilai yang valid: - true: menampilkan ID log di halaman CAPTCHA slider. - false: tidak menampilkan ID log di halaman CAPTCHA slider. |
Contoh konfigurasi halaman blokir kustom
{
"name": "test",
"action": "block",
"responseContent": "helloworld",
"responseCode": 401,
"responseHeaders": [{"key":"t1","value":"v1"}],
}
Contoh konfigurasi halaman CAPTCHA slider yang telah ditentukan
{
"name": "test",
"designType": "preDefine",
"action": "captcha",
"responseHeaders": [
{
"key": "Content-Type",
"value": "text/html"
}
],
"preDefineContent": [
{
"language": "en",
"icon": "https://img.alicdn.com/imgextra/i1/O1CN01L12MaQ1ZwfYKk7Yrc_!!6000000003259-2-tps-900-594.png",
"title": "Access Verification-custom",
"description": "For better experience, please slide to complete the verification process before accessing the web page.",
"captchaColor": "#ff6a00",
"showTraceId": true
}
]
}
Elemen respons
|
Element |
Type |
Description |
Example |
|
object |
Mengembalikan struktur objek. |
||
| RequestId |
string |
ID permintaan. |
26E46541-7AAB-5565-801D-F14DBDC5**** |
| RuleIds |
string |
ID aturan perlindungan yang dibuat. Pisahkan beberapa ID dengan koma (,). |
22215,23354,462165 |
Contoh
Respons sukses
JSONformat
{
"RequestId": "26E46541-7AAB-5565-801D-F14DBDC5****",
"RuleIds": "22215,23354,462165"
}
Kode kesalahan
|
HTTP status code |
Error code |
Error message |
Description |
|---|---|---|---|
| 400 | Defense.Control.DefenseWhitelistBypassRuleNotExist | The whitelist protection rule does not exist. | |
| 400 | Defense.Control.DefenseWhitelistConfigInvalid | The whitelist rule is misconfigured. | |
| 400 | Defense.Control.DefenseBookTypeInvalid | The address book type is illegal. | |
| 400 | Defense.Control.DefenseThreatIntelligenceConfigInvalid | Threat Intelligence Rule configuration error. | |
| 400 | Defense.Control.DefenseIpCountOversize | The number of IPs exceeds the limit. |
Lihat Error Codes untuk daftar lengkap.
Catatan rilis
Lihat Release Notes untuk daftar lengkap.