Operator pencocokan dalam aturan mencakup operator perbandingan dan logika. Anda dapat menggunakan lebih dari 10 jenis operator untuk membangun berbagai ekspresi aturan.
Operator Perbandingan
Operator perbandingan digunakan untuk membandingkan nilai input dalam permintaan dengan nilai yang dikonfigurasi dalam sebuah ekspresi.
eq
Menunjukkan bahwa nilai input dalam permintaan sama dengan nilai pencocokan.
Nama Operator:
sama denganTipe Nilai Pencocokan:
StringContoh:
(http.host eq "www.example.com")
ne
Menunjukkan bahwa nilai input dalam permintaan tidak sama dengan nilai pencocokan.
Nama Operator:
tidak sama denganTipe Nilai Pencocokan:
StringContoh:
(http.host ne "www.example.com")
contains
Menunjukkan bahwa nilai input dalam permintaan mengandung string tertentu.
Nama Operator:
mengandungTipe Nilai Pencocokan:
StringContoh:
(http.host contains "example.com")
not...contains
Menunjukkan bahwa nilai input dalam permintaan tidak mengandung string tertentu.
Nama Operator:
tidak mengandungTipe Nilai Pencocokan:
StringContoh:
(not http.host contains "example.com")
matches
Menunjukkan bahwa nilai input dalam permintaan sesuai dengan ekspresi reguler tertentu. Kompatibel dengan Perl Compatible Regular Expressions (PCRE).
Hanya paket Premium dan Enterprise yang mendukung ekspresi reguler.
Nama Operator:
cocok dengan ekspresi reguler yang ditentukanTipe Nilai Pencocokan:
StringContoh:
(http.host matches "(www|blog)\.example\.com")
not...matches
Menunjukkan bahwa nilai input dalam permintaan tidak sesuai dengan ekspresi reguler tertentu. Kompatibel dengan PCRE.
Hanya paket Premium dan Enterprise yang mendukung ekspresi reguler.
Nama Operator:
tidak cocok dengan ekspresi reguler yang ditentukanTipe Nilai Pencocokan:
StringContoh:
(not http.host matches "(www|blog)\.example\.com")
in
Menunjukkan bahwa nilai input dalam permintaan mengandung salah satu atau beberapa nilai pencocokan yang telah ditentukan. Anda juga dapat menggunakan $ secara bersamaan untuk menerapkan pengelompokan.
Nama operator:
contains one of the following itemsTipe Nilai Pencocokan:
ArrayContoh:
(http.host in {"www.example-1.com" "www.example-2.com"})( ip.src in $<LIST_NAME>)
not...in
Menunjukkan bahwa nilai input dalam permintaan tidak mengandung semua nilai pencocokan yang telah ditentukan. Anda juga dapat menggunakan $ secara bersamaan untuk menerapkan pengelompokan.
Nama operator:
does not contain any of the following itemsTipe Nilai Pencocokan:
ArrayContoh:
(not http.host in {"www.example-1.com" "www.example-2.com"})(not ip.src in $<LIST_NAME>)
starts_with
Menunjukkan bahwa awal nilai input dalam permintaan sesuai dengan nilai pencocokan yang telah ditentukan.
Nama Operator:
dimulai denganTipe Nilai Pencocokan:
StringContoh:
(starts_with(http.host, "blog"))
not starts_with
Menunjukkan bahwa awal nilai input dalam permintaan tidak sesuai dengan nilai pencocokan yang telah ditentukan.
Nama Operator:
tidak dimulai denganTipe Nilai Pencocokan:
StringContoh:
(not starts_with(http.host, "blog"))
ends_with
Menunjukkan bahwa akhir nilai input dalam permintaan sesuai dengan nilai pencocokan yang telah ditentukan.
Nama Operator:
diakhiri denganTipe Nilai Pencocokan:
StringContoh:
(ends_with(http.host, "cn"))
not ends_with
Menunjukkan bahwa akhir nilai input dalam permintaan tidak sesuai dengan nilai pencocokan yang telah ditentukan.
Nama Operator:
tidak diakhiri denganTipe Nilai Pencocokan:
StringContoh:
(not ends_with(http.host, "cn"))
le
Menunjukkan bahwa nilai input dalam permintaan kurang dari atau sama dengan nilai pencocokan yang telah ditentukan.
Nama Operator:
kurang dari atau sama denganTipe Nilai Pencocokan: int
Contoh:
(ip.geoip.asnum le 45104)
ge
Menunjukkan bahwa nilai input dalam permintaan lebih dari atau sama dengan nilai pencocokan yang telah ditentukan.
Nama Operator:
lebih besar dari atau sama denganTipe Nilai Pencocokan:
intContoh:
(ip.geoip.asnum ge 45104)
lt
Menunjukkan bahwa nilai input dalam permintaan kurang dari nilai pencocokan yang telah ditentukan.
Nama Operator:
kurang dariTipe Nilai Pencocokan:
intContoh:
(ip.geoip.asnum lt 45104)
gt
Menunjukkan bahwa nilai input dalam permintaan lebih dari nilai pencocokan yang telah ditentukan.
Nama Operator:
lebih besar dariTipe Nilai Pencocokan:
intContoh:
(ip.geoip.asnum gt 45104)
len eq
Menunjukkan bahwa panjang nilai input dalam permintaan sama dengan nilai pencocokan yang telah ditentukan.
Nama Operator:
panjang sama denganTipe Nilai Pencocokan:
StringContoh:
(len(http.request.cookies["session"]) eq 330688)
len gt
Menunjukkan bahwa panjang nilai input dalam permintaan lebih dari nilai pencocokan yang telah ditentukan.
Nama Operator:
panjang lebih besar dariTipe Nilai Pencocokan:
StringContoh:
(len(http.request.cookies["session"]) gt 330688)
len lt
Menunjukkan bahwa panjang nilai input dalam permintaan kurang dari nilai pencocokan yang telah ditentukan.
Nama Operator:
panjang kurang dariTipe Nilai Pencocokan:
StringContoh:
(len(http.request.cookies["session"]) lt 330688)
exists
Memeriksa apakah nilai yang ditentukan ada dalam permintaan.
Nama operator:
existsTipe Nilai Pencocokan:
StringContoh:
(exists(http.request.headers["User-Agent"]))
not exists
Memeriksa apakah nilai yang ditentukan tidak ada dalam permintaan.
Nama Operator:
tidak adaTipe Nilai Pencocokan:
StringContoh:
(not exists(http.request.headers["User-Agent"]))
Operator Lainnya
lower
Mengonversi huruf dari nilai input dalam permintaan menjadi huruf kecil jika nilai permintaan bersifat case-insensitive.
Nama Operator:
tidak peka huruf besar/kecilTipe Nilai Pencocokan:
StringContoh:
(lower(http.request.uri))
Operator Logika
Operator logika digunakan untuk menggabungkan beberapa ekspresi menjadi sebuah ekspresi majemuk.
not
Menjalankan operator logika NOT pada suatu ekspresi.
Nama Operator:
logika NOTContoh:
not (http.host )
and
Menunjukkan bahwa permintaan harus memenuhi dua ekspresi atau lebih.
Nama Operator:
logika ANDContoh:
(http.host eq "www.example.com" and ip.geoip.country eq "CN")
or
Menunjukkan bahwa permintaan hanya perlu memenuhi salah satu dari ekspresi yang ditentukan.
Nama Operator:
logika ORContoh:
(http.host eq "www.example.com") or (ip.geoip.country eq "CN")