Saat mengonfigurasi daftar putih atau aturan kustom, Anda menentukan kondisi pencocokan untuk menetapkan permintaan mana yang akan diperiksa. Setiap kondisi pencocokan terdiri dari bidang pencocokan dan operator logika.
Apa itu kondisi pencocokan
Kondisi pencocokan menentukan karakteristik permintaan yang diperiksa oleh DCDN WAF di edge. Saat mengonfigurasi kebijakan perlindungan kustom, daftar putih, atau blacklist alamat IP, Anda menggunakan satu atau beberapa Match Condition untuk menentukan kriteria aturan tersebut. Jika permintaan masuk memenuhi kondisi pencocokan, aturan tersebut akan dipicu. WAF kemudian menerapkan aksi aturan yang ditentukan terhadap permintaan tersebut, seperti Block, JavaScript Validation, atau Monitor.
Bidang pencocokan yang didukung
Tabel berikut menjelaskan bidang pencocokan yang tersedia.
|
Match field |
Logical operators |
Description |
|
URI |
|
Uniform resource identifier (URI) dari permintaan, yang menentukan jalur sumber daya. Nilainya harus dimulai dengan garis miring maju ( |
|
IP |
|
Alamat IP sumber dari client yang melakukan permintaan. Nilai harus memenuhi persyaratan berikut:
|
|
Referer |
|
URL halaman asal. |
|
User-Agent |
|
Informasi mengenai browser client, seperti identitas, mesin rendering, dan versinya. |
|
Query string |
|
Bagian URL yang mengikuti tanda tanya (?). |
|
Cookie |
|
Informasi cookie dalam permintaan. |
|
Content-Type |
|
Jenis media dari badan permintaan, sebagaimana ditentukan dalam header Content-Type. Disebut juga sebagai tipe MIME. |
|
Content-Length |
Is Less Than, Is Equal To, Is Greater Than |
Ukuran badan permintaan dalam byte. Nilai yang valid: 0 hingga 8192. |
|
X-Forwarded-For |
|
Alamat IP client asli, diidentifikasi oleh header permintaan X-Forwarded-For (XFF) ketika traffic melewati proxy HTTP atau load balancer. Header ini hanya ada jika permintaan diarahkan melalui proxy atau load balancer. |
|
Request body |
|
Konten badan permintaan. WAF tidak memeriksa badan permintaan yang lebih besar dari 8 KB. |
|
HTTP method |
|
Metode yang digunakan dalam permintaan. Metode yang didukung mencakup GET, POST, DELETE, PUT, OPTIONS, CONNECT, HEAD, TRACE, dan PATCH. |
|
Header |
|
Header permintaan. Field header kustom didukung. |
|
URI path |
|
Komponen jalur dari URI permintaan. |
|
Query string parameter |
|
Parameter dalam query string. Misalnya, pada URL |
|
Host |
|
Nama domain yang diminta. |
|
CookieName |
|
Nama (atau kunci) cookie. Misalnya, pada cookie |
|
BodyParameter |
|
Nama parameter dalam badan permintaan. Misalnya, jika badan permintaan berisi string |
|
Filename |
|
Nama file di akhir jalur URI. Misalnya, dalam |
|
File extension |
|
Ekstensi file yang diminta, seperti |
Operator logika
|
Logical operator |
Description |
|
Is, Is Not |
Memeriksa apakah nilai field merupakan atau bukan alamat IP atau Blok CIDR yang ditentukan. |
|
Contains, Does Not Contain |
Memeriksa apakah nilai field berisi atau tidak berisi substring yang ditentukan. |
|
Is in, Is Not in |
Memeriksa apakah nilai field termasuk atau tidak termasuk dalam daftar alamat IP yang ditentukan. |
|
Contains One of, Does Not Contain Any of |
Memeriksa apakah nilai field berisi setidaknya satu dari substring yang ditentukan, atau tidak berisi satupun dari substring yang ditentukan. |
|
Equals, Does Not Equal |
Memeriksa apakah nilai field secara tepat sesuai atau tidak sesuai dengan nilai yang ditentukan. |
|
Equals One of, Does Not Equal Any of |
Memeriksa apakah nilai field secara tepat sesuai dengan setidaknya satu dari nilai yang ditentukan, atau tidak sesuai dengan semua nilai yang ditentukan. |
|
Length Equals, Length Is Greater Than, Length Is Less Than |
Membandingkan panjang nilai field dalam byte terhadap nilai numerik yang ditentukan. |
|
Exists, Does Not Exist |
Memeriksa apakah field yang ditentukan ada atau tidak ada dalam permintaan. |
|
Is Less Than, Is Equal To, Is Greater Than |
Membandingkan nilai numerik field terhadap nilai numerik yang ditentukan. |
|
Starts With, Ends With |
Memeriksa apakah nilai field diawali atau diakhiri oleh substring yang ditentukan. |
|
Regex Match, Regex Mismatch |
Memeriksa apakah nilai field sesuai atau tidak sesuai dengan ekspresi reguler (regex) yang ditentukan. |
|
Is Empty |
Memeriksa apakah nilai field kosong. |
Contoh konfigurasi
-
Contoh 1: Atur match field ke
URI, logical operator keContains, dan Match content ke/login.php. Aturan ini dipicu jika URI permintaan berisi/login.php. -
Contoh 2: Atur match field ke
IP, logical operator keIs, dan Match content ke 192.168.0.1. Aturan ini dipicu untuk permintaan dari alamat IP 192.168.0.1.