Bekerja dengan kondisi kecocokan regex - AWS WAF, AWS Firewall Manager, dan AWS Shield Advanced

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Bekerja dengan kondisi kecocokan regex

catatan

Ini adalahAWS WAFKlasikdokumentasi. Anda sebaiknya hanya menggunakan versi ini jika membuatAWS WAFsumber daya, seperti aturan dan ACL web, diAWS WAFsebelum November 2019, dan Anda belum memigrasikannya ke versi terbaru. Untuk memigrasi sumber daya Anda, lihatMigrasiAWS WAFSumber daya KlasikAWS WAF.

Untuk versi terbaruAWS WAF, LihatAWS WAF.

Jika Anda ingin mengizinkan atau memblokir permintaan web berdasarkan string yang cocok dengan pola ekspresi reguler (regex) yang muncul dalam permintaan, buat satu atau lebih kondisi pencocokan regex. Kondisi pencocokan regex adalah jenis kondisi pencocokan string yang mengidentifikasi pola yang ingin Anda cari dan bagian dari permintaan web, seperti header tertentu atau string kueri, yang Anda inginkanAWS WAFKlasik untuk memeriksa pola. Kemudian dalam prosesnya, ketika Anda membuat ACL web, Anda menentukan apakah akan mengizinkan atau memblokir permintaan yang berisi pola.

Membuat kondisi kecocokan regex

Ketika Anda membuat kondisi pencocokan regex, Anda menentukan set pola yang mengidentifikasi string (menggunakan ekspresi reguler) yang ingin Anda cari. Anda kemudian menambahkan set pola tersebut ke filter yang menentukan bagian dari permintaan web yang Anda inginkanAWS WAFKlasik untuk memeriksa set pola itu, seperti URI atau string kueri.

Anda dapat menambahkan beberapa ekspresi reguler ke satu set pola. Jika Anda melakukannya, ekspresi tersebut digabungkan denganATAU. Artinya, permintaan web akan cocok dengan pola yang ditetapkan jika bagian yang sesuai dari permintaan cocok dengan salah satu ekspresi yang tercantum.

Bila Anda menambahkan kondisi kecocokan regex ke aturan, Anda juga dapat mengonfigurasiAWS WAFKlasik untuk mengizinkan atau memblokir permintaan webtidakmencocokkan nilai-nilai dalam kondisi.

AWS WAFKlasik mendukung sebagian besarstandar Perl Kompatibel Regular Expressions (PCRE). Namun, hal berikut ini tidak didukung:

  • Referensi latar dan menangkap subexpressions

  • Pernyataan sewenang-wenang nol-lebar

  • Referensi subrutin dan pola rekursif

  • Pola bersyarat

  • Kata kerja kontrol pelacakan mudur

  • The\ C single-byte direktif

  • The\ R baris baru pencocokan direktif

  • \ K mulai dari perintah pengaturan ulang pertandingan

  • Callouts dan kode tertanam

  • Pengelompokan atom dan kuantifier posesif

Untuk membuat kondisi kecocokan regex

  1. Masuk keAWS Management Consoledan membukaAWS WAFkonsolhttps://console.aws.amazon.com/wafv2/.

    Jika Anda melihatBeralih keAWS WAFKlasikdi panel navigasi, pilih Peran.

  2. Di panel navigasi, pilihString dan regex pencocokan.

  3. PilihBuat kondisi.

  4. Tentukan pengaturan filter yang berlaku. Untuk informasi selengkapnya, lihat Nilai yang Anda tentukan ketika membuat atau mengedit RegEx kondisi kecocokan.

  5. PilihBuat set pola dan tambahkan filter(jika Anda membuat set pola baru) atauTambahkan filterjika Anda menggunakan set pola yang ada.

  6. Pilih Create (Buat).

Nilai yang Anda tentukan ketika membuat atau mengedit RegEx kondisi kecocokan

Saat Anda membuat atau memperbarui kondisi kecocokan regex, tentukan nilai berikut:

Nama

Masukkan nama untuk kondisi kecocokan regex. Nama hanya berisi karakter alfanumerik (A-Z, a-z, 0-9) atau karakter khusus berikut: _-! #`+*}, ./. Anda tidak dapat mengubah nama syarat setelah Anda membuatnya.

Tipe

PilihPertandingan Regex.

Bagian dari permintaan untuk menyaring

Pilih bagian dari setiap permintaan web yang Anda inginkanAWS WAFKlasik untuk memeriksa pola yang Anda tentukan diPencocokan nilai:

Header

Sebuah header permintaan yang ditentukan, misalnya,User-AgentatauRefererHeader. Jika Anda memilihHeader, tentukan nama header diHeaderbidang.

Metode HTTP

Metode HTTP, yang menunjukkan jenis operasi di mana permintaan meminta asal untuk melakukan. CloudFront mendukung metode berikut: DELETE, GET, HEAD, OPTIONS, PATCH, POST, dan PUT.

String kueri

Bagian dari URL yang muncul setelah?karakter, jika ada.

URI

Jalur URI permintaan, yang mengidentifikasi sumber daya, misalnya,/images/daily-ad.jpg. Ini tidak termasuk string kueri atau komponen fragmen URI. Untuk informasi, lihatUniform Resource Identifier (URI): Sintaks generik.

Kecualitransformasiditentukan, URI tidak dinormalisasi dan diperiksa sama sepertiAWSmenerimanya dari klien sebagai bagian dari permintaan. SEBUAHtransformasiakan memformat ulang URI seperti yang ditentukan.

body

Bagian dari permintaan yang berisi data tambahan yang ingin Anda kirimkan ke server web Anda sebagai isi permintaan HTTP, seperti data dari formulir.

catatan

Jika Anda memilihbodyuntuk nilai dariBagian dari permintaan untuk menyaring,AWS WAFKlasik memeriksa hanya 8192 byte pertama (8 KB). Untuk mengizinkan atau memblokir permintaan yang bodi lebih panjang dari 8192 byte, Anda dapat membuat kondisi kendala ukuran. (AWS WAFKlasik mendapatkan panjang tubuh dari header permintaan.) Untuk informasi selengkapnya, lihat Bekerja dengan kondisi kendala ukuran.

Parameter kueri tunggal (hanya nilai)

Setiap parameter yang telah Anda definisikan sebagai bagian dari string kueri. Misalnya, jika URL adalah “www.xyz. comuserName=ABC&salesRegion=Seattle" Anda dapat menambahkan filter ke salah satuUserNameatauSalesRegionparameter.

Jika parameter duplikat muncul dalam string kueri, nilai dievaluasi sebagai “OR.” Artinya, baik nilai akan memicu kecocokan. Misalnya, di URL “www.xyz. comsalesRegion=Boston&salesRegion=Seattle “, pola yang cocok dengan “boston” atau “seattle” diPencocokan nilaiakan memicu kecocokan.

Jika Anda memilihParameter kueri tunggal (hanya nilai)Anda juga akan menentukanNama parameter kueri. Ini adalah parameter dalam string kueri yang akan Anda periksa, sepertiUserNameatauSalesRegion. Panjang maksimum untukNama parameter kueriadalah 30 karakter. Nama parameter kueritidak peka huruf besar/ kecil. Misalnya, Anda menentukanUserNamesebagaiNama parameter kueri, ini akan cocok dengan semua variasiUserName, sepertinama penggunadanUsERName.

Semua parameter kueri (nilai saja)

MiripParameter kueri tunggal (hanya nilai), tetapi daripada memeriksa nilai parameter tunggal,AWS WAFKlasik memeriksa nilai semua parameter dalam string query untuk pola yang ditentukan dalamPencocokan nilai. Misalnya, di URL “www.xyz. comuserName=ABC&salesRegion=Seattle “, sebuah pola diPencocokan nilaiyang cocok baik nilai dalamUserNameatauSalesRegionakan memicu kecocokan.

Header (Hanya Ketika “Bagian dari permintaan untuk menyaring” adalah “Header”)

Jika Anda memilihHeaderdariBagian dari permintaan untuk menyaringdaftar, pilih header dari daftar header umum, atau masukkan nama header yang Anda inginkanAWS WAFKlasik untuk diperiksa.

transformasi

Transformasi memformat permintaan web sebelumnyaAWS WAFKlasik memeriksa permintaan. Ini menghilangkan beberapa pemformatan yang tidak biasa yang digunakan penyerang dalam permintaan web dalam upaya untuk melewatiAWS WAFKlasik.

Anda hanya dapat menentukan satu jenis transformasi teks.

Transformasi dapat melakukan operasi berikut:

Tidak ada

AWS WAFClassic tidak melakukan transformasi teks apa pun pada permintaan web sebelum memeriksanya untuk stringPencocokan nilai.

Mengkonversi ke lowercase

AWS WAFKlasik mengonversi huruf besar (A-Z) ke huruf kecil (a-z).

Dekode HTML

AWS WAFKlasik menggantikan karakter HTML yang dikodekan dengan karakter yang tidak dikodekan:

  • Mengganti " dengan &

  • Menggantikan dengan spasi tanpa pindah baris

  • Mengganti &lt; dengan <

  • Mengganti &gt; dengan >

  • Mengganti karakter yang diwakili dalam format heksadesimal, &#xhhhh;, dengan karakter yang sesuai

  • Mengganti karakter yang diwakili dalam format desimal, &#nnnn;, dengan karakter yang sesuai

ruang putih

AWS WAFKlasik mengganti karakter berikut dengan karakter spasi (desimal 32):

  • \ f, formfeed, desimal 12

  • \ t, tab, desimal 9

  • \ n, baris baru, desimal 10

  • \ r, pengembalian pengangkutan, desimal 13

  • \ v, tab vertikal, desimal 11

  • spasi tanpa pindah baris, desimal 160

Selain itu, opsi ini mengganti spasi ganda dengan satu spasi.

Baris perintah

Jika Anda khawatir penyerang menyuntikkan perintah baris perintah sistem operasi dan menggunakan pemformatan yang tidak biasa untuk menyamarkan beberapa atau semua perintah, gunakan pilihan ini untuk melakukan perubahan berikut:

  • Menghapus karakter berikut: \ " ' ^

  • Menghapus spasi sebelum karakter berikut: / (

  • Mengganti karakter berikut dengan spasi: , ;

  • Mengganti spasi ganda dengan satu spasi

  • Mengonversi huruf besar (A-Z) ke huruf kecil (a-z)

mendekode URL

Decode permintaan URL-dikodekan.

Pola Regex agar cocok dengan permintaan

Anda dapat memilih set pola yang ada, atau membuat yang baru. Jika Anda membuat yang baru, tentukan yang berikut ini:

Nama set pola

Masukkan nama dan kemudian tentukan pola regex yang Anda inginkanAWS WAFKlasik untuk mencari.

Jika Anda menambahkan beberapa ekspresi reguler ke set pola, ekspresi tersebut digabungkan denganATAU. Artinya, permintaan web akan cocok dengan pola yang ditetapkan jika bagian yang sesuai dari permintaan cocok dengan salah satu ekspresi yang tercantum.

Panjang maksimumPencocokan nilaiadalah 70 karakter.

Mengedit kondisi kecocokan regex

Anda dapat membuat perubahan berikut pada kondisi kecocokan regex yang sudah ada:

  • Menghapus pola dari kumpulan pola yang ada

  • Menambahkan pola ke set pola yang ada

  • Menghapus filter ke kondisi kecocokan regex yang ada

  • Tambahkan filter ke kondisi pencocokan regex yang ada (Anda hanya dapat memiliki satu filter dalam kondisi kecocokan regex. Oleh karena itu, untuk menambahkan filter, Anda harus menghapus filter yang sudah ada terlebih dahulu.

  • Menghapus kondisi kecocokan regex yang ada

catatan

Anda tidak dapat menambahkan atau menghapus kumpulan pola dari filter yang sudah ada. Anda harus mengedit set pola, atau menghapus filter dan membuat filter baru dengan set pola baru.

Untuk menghapus pola dari kumpulan pola yang ada

  1. Masuk keAWS Management Consoledan membukaAWS WAFkonsolhttps://console.aws.amazon.com/wafv2/.

    Jika Anda melihatBeralih keAWS WAFKlasikdi panel navigasi, pilih Peran.

  2. Di panel navigasi, pilihString dan regex pencocokan.

  3. PilihSet pola regex.

  4. Pilih nama set pola yang ingin Anda edit.

  5. Pilih Edit.

  6. PilihXdi samping pola yang ingin Anda hapus.

  7. Pilih Save (Simpan).

Untuk menambahkan pola ke set pola yang ada

  1. Masuk keAWS Management Consoledan membukaAWS WAFkonsolhttps://console.aws.amazon.com/wafv2/.

    Jika Anda melihatBeralih keAWS WAFKlasikdi panel navigasi, pilih Peran.

  2. Di panel navigasi, pilihString dan regex pencocokan.

  3. PilihSet pola regex.

  4. Pilih nama pola yang disetel untuk diedit.

  5. Pilih Edit.

  6. Masukkan pola regex baru.

  7. Pilih+di samping pola baru.

  8. Pilih Save (Simpan).

Untuk menghapus filter dari kondisi pencocokan regex yang ada

  1. Masuk keAWS Management Consoledan membukaAWS WAFkonsolhttps://console.aws.amazon.com/wafv2/.

    Jika Anda melihatBeralih keAWS WAFKlasikdi panel navigasi, pilih Peran.

  2. Di panel navigasi, pilihString dan regex pencocokan.

  3. Pilih nama syarat dengan filter yang ingin Anda hapus.

  4. Pilih kotak di samping filter yang ingin Anda hapus.

  5. PilihHapus filter.

Untuk menghapus syarat kecocokan regex

  1. Masuk keAWS Management Consoledan membukaAWS WAFkonsolhttps://console.aws.amazon.com/wafv2/.

    Jika Anda melihatBeralih keAWS WAFKlasikdi panel navigasi, pilih Peran.

  2. Menghapus filter dari kondisi regex. LihatUntuk menghapus filter dari kondisi pencocokan regex yang adauntuk instruksi untuk melakukan ini.)

  3. Hapus kondisi kecocokan regex dari aturan yang menggunakannya:

    1. Di panel navigasi, pilih Aturan.

    2. Pilih nama aturan yang menggunakan kondisi kecocokan regex yang ingin Anda hapus.

    3. Di panel kanan, pilihEdit aturan.

    4. PilihXdi samping kondisi yang ingin Anda hapus.

    5. Pilih Update (Perbarui).

    6. Ulangi untuk semua aturan yang tersisa yang menggunakan kondisi kecocokan regex yang ingin Anda hapus.

  4. Di panel navigasi, pilihString dan regex pencocokan.

  5. Pilih tombol di samping kondisi yang ingin Anda hapus.

  6. Pilih Delete (Hapus).

Untuk menambah atau mengubah filter ke kondisi kecocokan regex yang ada

Anda hanya dapat memiliki satu filter dalam kondisi kecocokan regex. Jika Anda ingin menambahkan atau mengubah filter, Anda harus terlebih dahulu menghapus filter yang ada.

  1. Masuk keAWS Management Consoledan membukaAWS WAFkonsolhttps://console.aws.amazon.com/wafv2/.

    Jika Anda melihatBeralih keAWS WAFKlasikdi panel navigasi, pilih Peran.

  2. Hapus filter dari kondisi regex yang ingin Anda ubah. LihatUntuk menghapus filter dari kondisi pencocokan regex yang adauntuk instruksi untuk melakukan ini.)

  3. Di panel navigasi, pilihString dan regex pencocokan.

  4. Pilih nama kondisi yang ingin Anda ubah.

  5. PilihTambahkan filter.

  6. Masukkan nilai yang sesuai untuk filter baru dan pilihTambahkan.