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

Awas

AWS WAF Dukungan klasik akan berakhir pada 30 September 2025.

catatan

Ini adalah dokumentasi AWS WAF Klasik. Anda hanya boleh menggunakan versi ini jika Anda membuat AWS WAF sumber daya, seperti aturan dan webACLs, AWS WAF sebelum November 2019, dan Anda belum memigrasikannya ke versi terbaru. Untuk memigrasi web AndaACLs, lihatMemigrasi sumber daya AWS WAF Klasik Anda ke AWS WAF.

Untuk versi terbaru AWS 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 beberapa 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 ingin AWS WAF Classic untuk memeriksa polanya. Kemudian dalam proses, ketika Anda membuat webACL, Anda menentukan apakah akan mengizinkan atau memblokir permintaan yang berisi pola.

Membuat kondisi kecocokan regex

Saat membuat kondisi pencocokan regex, Anda menentukan kumpulan 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 ingin AWS WAF Classic 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 dengan OR. Artinya, permintaan web akan cocok dengan pola yang ditetapkan jika bagian yang sesuai dari permintaan cocok dengan salah satu ekspresi yang terdaftar.

Saat menambahkan kondisi pencocokan regex ke aturan, Anda juga dapat mengonfigurasi AWS WAF Classic untuk mengizinkan atau memblokir permintaan web yang tidak cocok dengan nilai dalam kondisi tersebut.

AWS WAF Klasik mendukung sebagian besar Ekspresi Reguler Kompatibel Perl standar (PCRE). Namun, berikut ini tidak didukung:

  • Referensi balik dan menangkap subexpressions

  • Pernyataan lebar nol yang sewenang-wenang

  • Referensi subrutin dan pola rekursif

  • Pola bersyarat

  • Kata kerja kontrol mundur

  • Direktif byte tunggal\ C

  • Arahan pencocokan baris baru\ R

  • Perintah pengaturan ulang pertandingan dimulai\ K

  • Callout dan kode tertanam

  • Pengelompokan atom dan kuantifier posesif

Untuk membuat kondisi kecocokan regex
  1. Masuk ke AWS Management Console dan buka AWS WAF konsol di https://console.aws.amazon.com/wafv2/.

    Jika Anda melihat Beralih ke AWS WAF Klasik di panel navigasi, pilih.

  2. Di panel navigasi, pilih String dan regex matching.

  3. Pilih Buat kondisi.

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

  5. Pilih Buat set pola dan tambahkan filter (jika Anda membuat set pola baru) atau Tambahkan filter jika Anda menggunakan kumpulan pola yang ada.

  6. Pilih Buat.

Nilai yang Anda tentukan saat membuat atau mengedit kondisi RegEx kecocokan

Saat Anda membuat atau memperbarui kondisi pencocokan regex, Anda menentukan nilai berikut:

Nama

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

Tipe

Pilih pertandingan Regex.

Bagian dari permintaan untuk memfilter

Pilih bagian dari setiap permintaan web yang ingin Anda periksa oleh AWS WAF Classic untuk pola yang Anda tentukan di Nilai yang cocok:

Header

Header permintaan tertentu, misalnya, Referer header User-Agent atau. Jika Anda memilih Header, tentukan nama header di bidang Header.

HTTPmetode

HTTPMetode, yang menunjukkan jenis operasi yang diminta permintaan asal untuk dilakukan. CloudFront mendukung metode berikut:DELETE,GET,HEAD,OPTIONS,PATCH,POST, danPUT.

String kueri

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

URI

URIJalur permintaan, yang mengidentifikasi sumber daya, misalnya,/images/daily-ad.jpg. Ini tidak termasuk string kueri atau komponen fragmen dari file. URI Untuk selengkapnya, lihat Uniform Resource Identifier (URI): Generic Syntax.

Kecuali Transformasi ditentukan, a URI tidak dinormalisasi dan diperiksa sama seperti AWS menerimanya dari klien sebagai bagian dari permintaan. Transformasi akan memformat ulang URI seperti yang ditentukan.

Tubuh

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

catatan

Jika Anda memilih Body untuk nilai Bagian dari permintaan untuk difilter, AWS WAF Classic hanya memeriksa 8192 byte pertama (8 KB). Untuk mengizinkan atau memblokir permintaan yang badannya lebih panjang dari 8192 byte, Anda dapat membuat kondisi batasan ukuran. (AWS WAF Klasik mendapatkan panjang badan dari header permintaan.) Untuk informasi selengkapnya, lihat Bekerja dengan kondisi kendala ukuran.

Parameter kueri tunggal (hanya nilai)

Parameter apa pun yang telah Anda definisikan sebagai bagian dari string kueri. Misalnya, jika “www.xyz.com? UserName =abc& SalesRegion =seattle” Anda dapat menambahkan filter ke parameter atau. URL UserNameSalesRegion

Jika parameter duplikat muncul dalam string kueri, nilai dievaluasi sebagai “OR.” Artinya, salah satu nilai akan memicu kecocokan. Misalnya, di URL “www.xyz.com? SalesRegion =boston& SalesRegion =seattle”, pola yang cocok dengan “boston” atau “seattle” di Value to match akan memicu kecocokan.

Jika Anda memilih Parameter kueri tunggal (hanya nilai) Anda juga akan menentukan nama parameter Kueri. Ini adalah parameter dalam string kueri yang akan Anda periksa, seperti UserNameatau SalesRegion. Panjang maksimum untuk nama parameter Query adalah 30 karakter. Nama parameter kueri tidak peka huruf besar/kecil. Misalnya, Anda menentukan UserNamesebagai nama parameter Query, ini akan cocok dengan semua variasi UserName, seperti nama pengguna dan U sERName.

Semua parameter kueri (hanya nilai)

Mirip dengan Parameter kueri tunggal (hanya nilai), tetapi alih-alih memeriksa nilai parameter tunggal, AWS WAF Classic memeriksa nilai semua parameter dalam string kueri untuk pola yang ditentukan dalam Nilai yang cocok. Misalnya, di URL “www.xyz.com? UserName =abc& SalesRegion =seattle”, pola di Nilai yang cocok dengan nilai di atau akan memicu kecocokan. UserNameSalesRegion

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

Jika Anda memilih Header dari Bagian permintaan untuk memfilter pada daftar, pilih header dari daftar header umum, atau masukkan nama header yang ingin Anda periksa AWS WAF Classic.

Transformasi

Transformasi memformat ulang permintaan web sebelum AWS WAF Classic memeriksa permintaan. Ini menghilangkan beberapa format yang tidak biasa yang digunakan penyerang dalam permintaan web dalam upaya untuk melewati AWS WAF Classic.

Anda hanya dapat menentukan satu jenis transformasi teks.

Transformasi dapat melakukan operasi berikut:

Tidak ada

AWS WAF Classic tidak melakukan transformasi teks apa pun pada permintaan web sebelum memeriksanya agar string di Nilai cocok.

Mengkonversi ke lowercase

AWS WAF Klasik mengkonversi huruf besar (A-Z) ke huruf kecil (a-z).

HTMLmemecahkan kode

AWS WAF Klasik menggantikan karakter HTML -encoded dengan karakter yang tidak dikodekan:

  • Mengganti " dengan &

  • Mengganti   dengan ruang yang tidak pecah

  • 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

Menormalkan ruang putih

AWS WAF Klasik menggantikan 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 menggantikan beberapa spasi dengan satu spasi.

Sederhanakan 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)

URLmemecahkan kode

Mendekode permintaan URL -encoded.

Pola Regex agar sesuai 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 baru

Masukkan nama dan kemudian tentukan pola regex yang ingin Anda cari AWS WAF Classic.

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

Panjang maksimum Nilai untuk dicocokkan adalah 70 karakter.

Mengedit kondisi kecocokan regex

Anda dapat membuat perubahan berikut pada kondisi pencocokan regex yang ada:

  • Menghapus pola dari set pola yang ada

  • Tambahkan 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 ada terlebih dahulu.)

  • Hapus kondisi kecocokan regex yang ada

catatan

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

Untuk menghapus pola dari set pola yang ada
  1. Masuk ke AWS Management Console dan buka AWS WAF konsol di https://console.aws.amazon.com/wafv2/.

    Jika Anda melihat Beralih ke AWS WAF Klasik di panel navigasi, pilih.

  2. Di panel navigasi, pilih String dan regex matching.

  3. Pilih Lihat set pola regex.

  4. Pilih nama set pola yang ingin Anda edit.

  5. Pilih Edit.

  6. Pilih X di sebelah pola yang ingin Anda hapus.

  7. Pilih Simpan.

Untuk menambahkan pola ke set pola yang ada
  1. Masuk ke AWS Management Console dan buka AWS WAF konsol di https://console.aws.amazon.com/wafv2/.

    Jika Anda melihat Beralih ke AWS WAF Klasik di panel navigasi, pilih.

  2. Di panel navigasi, pilih String dan regex matching.

  3. Pilih Lihat set pola regex.

  4. Pilih nama pola yang akan diedit.

  5. Pilih Edit.

  6. Masukkan pola regex baru.

  7. Pilih + di sebelah pola baru.

  8. Pilih Simpan.

Untuk menghapus filter dari kondisi kecocokan regex yang ada
  1. Masuk ke AWS Management Console dan buka AWS WAF konsol di https://console.aws.amazon.com/wafv2/.

    Jika Anda melihat Beralih ke AWS WAF Klasik di panel navigasi, pilih.

  2. Di panel navigasi, pilih String dan regex matching.

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

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

  5. Pilih Hapus filter.

Untuk menghapus kondisi kecocokan regex
  1. Masuk ke AWS Management Console dan buka AWS WAF konsol di https://console.aws.amazon.com/wafv2/.

    Jika Anda melihat Beralih ke AWS WAF Klasik di panel navigasi, pilih.

  2. Hapus filter dari kondisi regex. Lihat instruksi Untuk menghapus filter dari kondisi kecocokan regex yang ada untuk melakukan ini.)

  3. Hapus kondisi pencocokan regex dari aturan yang menggunakannya:

    1. Di panel navigasi, pilih Aturan.

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

    3. Di panel kanan, pilih Edit aturan.

    4. Pilih X di sebelah kondisi yang ingin Anda hapus.

    5. Pilih Perbarui.

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

  4. Di panel navigasi, pilih String dan regex matching.

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

  6. Pilih 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 menambah atau mengubah filter, Anda harus terlebih dahulu menghapus filter yang ada.

  1. Masuk ke AWS Management Console dan buka AWS WAF konsol di https://console.aws.amazon.com/wafv2/.

    Jika Anda melihat Beralih ke AWS WAF Klasik di panel navigasi, pilih.

  2. Hapus filter dari kondisi regex yang ingin Anda ubah. Lihat instruksi Untuk menghapus filter dari kondisi kecocokan regex yang ada untuk melakukan ini.)

  3. Di panel navigasi, pilih String dan regex matching.

  4. Pilih nama kondisi yang ingin Anda ubah.

  5. Pilih Tambahkan filter.

  6. Masukkan nilai yang sesuai untuk filter baru dan pilih Tambah.