Kondisi pencocokan memungkinkan Anda menargetkan atribut permintaan HTTP tertentu saat mengonfigurasi daftar putih website atau aturan perlindungan kustom. Setiap kondisi membandingkan satu bidang terhadap suatu nilai menggunakan operator logika. WAF hanya menerapkan aturan tersebut jika semua kondisi dalam aturan perlindungan terpenuhi.
Cara kerja kondisi pencocokan
Kondisi pencocokan terdiri dari tiga bagian:
Match field — atribut permintaan HTTP yang akan diperiksa (misalnya, URL, IP, atau User-Agent)
Logical operator — cara membandingkan nilai bidang (misalnya, Equals, Contains, atau Prefix Match)
Match content — nilai yang akan dibandingkan
Setiap aturan perlindungan mendukung hingga lima kondisi pencocokan. Kondisi-kondisi tersebut digabungkan dengan logika AND, sehingga suatu permintaan harus memenuhi semua kondisi sebelum WAF menerapkan aksi aturan tersebut.
Saat mengonfigurasi daftar putih, atur parameter Bypassed Modules untuk menentukan modul WAF mana yang dilewati oleh permintaan yang sesuai. Saat mengonfigurasi aturan perlindungan kustom, atur parameter Action untuk menentukan tindakan WAF terhadap permintaan yang sesuai. Untuk detail selengkapnya, lihat:
Bidang pencocokan yang didukung
Bidang-bidang dikelompokkan berdasarkan ketersediaan edisi. Bidang yang ditandai Pro+ tersedia di edisi Pro, Business, Enterprise, dan Exclusive. Bidang yang ditandai Business+ memerlukan edisi Business, Enterprise, atau Exclusive.
Edisi Pro, Business, Enterprise, dan Exclusive
| Field | Type | Description | Supported logical operators |
|---|---|---|---|
| URL | String | URL lengkap dari permintaan. | Equals, Does Not Equal, Equals One of Multiple Values, Does Not Equal Any Value; Contains, Does Not Contain, Contains One of Multiple Values, Does Not Contain Any Value; Length Equal To, Length Greater Than, Length Less Than; Prefix Match, Suffix Match; Regular Expression Match, Regular Expression Mismatch. Penting Edisi Pro tidak mendukung Regular Expression Match. |
| IP | IP | Alamat IP sumber dari permintaan. Masukkan alamat IP individual atau Blok CIDR (misalnya, 47.100.XX.XX/24). Pisahkan beberapa nilai dengan koma. | Belongs To, Does Not Belong To. Catatan Satu aturan perlindungan mendukung maksimum gabungan 50 alamat IP atau Blok CIDR di seluruh semua kondisi pencocokan IP. |
| Referer | String | URL halaman yang menautkan ke resource yang diminta (header HTTP Referer). | Equals, Does Not Equal, Equals One of Multiple Values, Does Not Equal Any Value; Contains, Does Not Contain, Contains One of Multiple Values, Does Not Contain Any Value; Exists, Does Not Exist; Empty; Length Equal To, Length Greater Than, Length Less Than; Prefix Match, Suffix Match; Regular Expression Match, Regular Expression Mismatch. Penting Edisi Pro tidak mendukung Regular Expression Match. |
| User-Agent | String | Browser client, mesin rendering, dan versinya, sebagaimana dilaporkan dalam header User-Agent. | Equals, Does Not Equal, Equals One of Multiple Values, Does Not Equal Any Value; Contains, Does Not Contain, Contains One of Multiple Values, Does Not Contain Any Value; Exists, Does Not Exist; Empty; Length Equal To, Length Greater Than, Length Less Than; Prefix Match, Suffix Match; Regular Expression Match, Regular Expression Mismatch. |
| Params | String | Seluruh string kueri dalam URL permintaan — semua yang ada setelah ?. Misalnya, pada www.example.com/index.html?action=login, nilai Params adalah action=login. | Equals, Does Not Equal, Equals One of Multiple Values, Does Not Equal Any Value; Contains, Does Not Contain, Contains One of Multiple Values, Does Not Contain Any Value; Exists, Does Not Exist; Length Equal To, Length Greater Than, Length Less Than; Prefix Match, Suffix Match; Regular Expression Match, Regular Expression Mismatch. |
| Query-Arg | String | Argumen kueri individual dalam URL permintaan. Misalnya, pada www.example.com/request_path?arg1=a&arg2=b, argumen kuerinya adalah arg1=a dan arg2=b. Catatan Saat Anda mengatur Match Field ke Query-Arg dan Logical Operator ke Contains, WAF melakukan pencocokan substring pada nama argumen. Mengatur Match Content ke | Equals, Does Not Equal, Equals One of Multiple Values, Does Not Equal Any Value; Contains, Does Not Contain, Contains One of Multiple Values, Does Not Contain Any Value; Exists, Does Not Exist; Empty; Length Equal To, Length Greater Than, Length Less Than; Prefix Match, Suffix Match; Regular Expression Match. |
| URLPath | String | Komponen path dari URL permintaan, tidak termasuk string kueri. | Equals, Does Not Equal, Equals One of Multiple Values, Does Not Equal Any Value; Contains, Does Not Contain, Contains One of Multiple Values, Does Not Contain Any Value; Length Equal To, Length Greater Than, Length Less Than; Prefix Match, Suffix Match; Regular Expression Match, Regular Expression Mismatch. |
Hanya untuk edisi Business, Enterprise, dan Exclusive
| Field | Type | Description | Supported logical operators |
|---|---|---|---|
| Cookie | String | Data cookie dalam permintaan. | Equals, Does Not Equal, Equals One of Multiple Values, Does Not Equal Any Value; Contains, Does Not Contain, Contains One of Multiple Values, Does Not Contain Any Value; Exists, Does Not Exist; Length Equal To, Length Greater Than, Length Less Than; Regular Expression Match, Regular Expression Mismatch. |
| Content-Type | String | Tipe konten HTTP yang ditentukan untuk respons. Juga dikenal sebagai tipe Multipurpose Internet Mail Extensions (MIME). | Equals, Does Not Equal, Equals One of Multiple Values, Does Not Equal Any Value; Contains, Does Not Contain, Contains One of Multiple Values, Does Not Contain Any Value; Length Equal To, Length Greater Than, Length Less Than; Regular Expression Match, Regular Expression Mismatch. |
| Content-Length | Number | Jumlah byte yang diizinkan dalam respons. | Value Less Than, Value Equal To, Value Greater Than. |
| X-Forwarded-For | String | Alamat IP asal client yang permintaannya diteruskan oleh proxy HTTP atau instans Server Load Balancer (SLB). Header X-Forwarded-For (XFF) hanya ada pada permintaan yang diteruskan. | Equals, Does Not Equal, Equals One of Multiple Values, Does Not Equal Any Value; Contains, Does Not Contain; Does Not Exist; Length Equal To, Length Greater Than, Length Less Than. |
| Post-Body | String | Konten body dari permintaan. | Equal To, Not Equal To; Contains, Does Not Contain; Does Not Exist; Prefix Match, Suffix Match; Regular Expression Match. |
| Server-Port | String | Nomor port server origin. Misalnya, pada www.example.com:9999, port server-nya adalah 9999. | Equals, Does Not Equal, Equals One of Multiple Values, Does Not Equal Any Value. |
| Http-Method | String | Metode HTTP dari permintaan. Nilai yang valid: GET, POST, DELETE, PUT, OPTIONS. | Equals, Does Not Equal, Equals One of Multiple Values, Does Not Equal Any Value. |
| Header | String | Header permintaan HTTP kustom. Gunakan bidang ini untuk mencocokkan header non-standar atau spesifik aplikasi. | Equals, Does Not Equal, Equals One of Multiple Values, Does Not Equal Any Value; Contains, Does Not Contain, Contains One of Multiple Values, Does Not Contain Any Value; Exists, Does Not Exist; Length Equal To, Length Greater Than, Length Less Than; Regular Expression Match, Regular Expression Mismatch. |
Params vs. Query-Arg
Params dan Query-Arg sama-sama memeriksa string kueri, tetapi pada tingkat granularitas yang berbeda:
| Params | Query-Arg | |
|---|---|---|
| Lingkup | Seluruh string kueri sebagai satu nilai | Satu argumen individual dalam string kueri |
| Contoh nilai | action=login&user=alice | action=login atau user=alice |
| Paling cocok untuk | Mencocokkan pola string kueri lengkap | Mencocokkan nama atau nilai argumen tertentu |
Misalnya, untuk memblokir permintaan di mana arg1 diatur ke nilai tertentu, gunakan Query-Arg dengan Equals. Untuk mencocokkan permintaan apa pun yang string kuerinya mengandung substring tertentu, gunakan Params dengan Contains.