Bekerja dengan kondisi pencocokan string - 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 pencocokan string

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 muncul dalam permintaan, buatlah satu atau beberapa string yang cocok dengan kondisi. Kondisi pencocokan string mengidentifikasi string yang ingin Anda cari dan bagian dari permintaan web, seperti header tertentu atau string kueri, yang Anda inginkanAWS WAFKlasik untuk memeriksa string. Kemudian dalam prosesnya, ketika Anda membuat ACL web, Anda menentukan apakah akan mengizinkan atau memblokir permintaan yang berisi string.

Membuat syarat kecocokan string

Ketika Anda membuat kondisi pencocokan string, Anda menentukan filter yang mengidentifikasi string yang ingin Anda cari dan bagian dari permintaan web yang Anda inginkanAWS WAFKlasik untuk memeriksa string itu, seperti URI atau string kueri. Anda dapat menambahkan lebih dari satu filter ke kondisi pencocokan string, atau Anda dapat membuat kondisi pencocokan string terpisah untuk setiap filter. Berikut bagaimana setiap konfigurasi memengaruhiAWS WAFPerilaku Klasik:

  • Satu filter per syarat kecocokan string— Bila Anda menambahkan kondisi pencocokan string terpisah ke aturan dan menambahkan aturan ke ACL web, permintaan web harus sesuai dengan semua kondisi untukAWS WAFKlasik untuk mengizinkan atau memblokir permintaan berdasarkan kondisi.

    Misalnya, Anda membuat dua kondisi. Satu cocok dengan permintaan web yang berisi nilaiBadBotdiUser-AgentHeader. Yang lain cocok permintaan web yang berisi nilaiBadParameterdalam string kueri. Bila Anda menambahkan kedua kondisi ke aturan yang sama dan menambahkan aturan ke ACL web,AWS WAFKlasik memungkinkan atau memblokir permintaan hanya ketika mereka berisi kedua nilai.

  • Lebih dari satu filter per syarat kecocokan string— Bila Anda menambahkan kondisi pencocokan string yang berisi beberapa filter ke aturan dan menambahkan aturan ke ACL web, permintaan web hanya perlu mencocokkan salah satu filter dalam kondisi pencocokan string untukAWS WAFKlasik untuk mengizinkan atau memblokir permintaan berdasarkan satu syarat.

    Misalkan Anda membuat satu kondisi bukan dua, dan satu kondisi berisi dua filter yang sama seperti pada contoh sebelumnya.AWS WAF Classic mengizinkan atau memblokir permintaan jika mengandungbaik BadBotdiUser-Agentheaderatau BadParameterdalam string kueri.

catatan

Bila Anda menambahkan kondisi pencocokan string ke aturan, Anda juga dapat mengkonfigurasiAWS WAFKlasik untuk mengizinkan atau memblokir permintaan webtidakmencocokkan nilai-nilai dalam kondisi.

Untuk membuat syarat kecocokan string

  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 kondisi kecocokan string.

  5. PilihTambahkan filter.

  6. Jika Anda ingin menambahkan filter lain, ulangi langkah 4 dan 5.

  7. Setelah selesai menambahkan filter, pilihBuat.

Nilai yang Anda tentukan ketika membuat atau mengedit kondisi kecocokan string

Saat Anda membuat atau memperbarui kondisi pencocokan string, tentukan nilai berikut:

Nama

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

Tipe

PilihPertandingan string.

Bagian dari permintaan untuk menyaring

Pilih bagian dari setiap permintaan web yang Anda inginkanAWS WAFKlasik untuk memeriksa string yang Anda tentukan diNilai untuk mencocokan:

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 “, baik “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 untukNilai untuk mencocokan. Misalnya, jika URL adalah “www.xyz. comuserName=ABC&salesRegion=Seattle,” dan Anda memilihSemua parameter kueri (nilai saja),AWS WAFClassic akan memicu kecocokan jika nilai salah satuUserNameatauSalesRegionditentukan sebagaiPencocokan nilai.

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.

Jenis pencocokan

Dalam bagian dari permintaan yang Anda inginkanAWS WAFKlasik untuk memeriksa, memilih di mana string diPencocokan nilaiharus muncul untuk mencocokkan filter ini:

Contains

String muncul di mana saja di bagian tertentu dari permintaan.

Berisi kata

Bagian yang ditentukan dari permintaan web harus mencakupPencocokan nilai, danPencocokan nilaiharus berisi karakter alfanumerik atau garis bawah (A-Z, a-z, 0-9, atau _). Selain itu,Pencocokan nilaiharus berupa kata, yang berarti bahwa salah satu dari berikut:

  • Pencocokan nilaipersis sesuai dengan nilai bagian tertentu dari permintaan web, seperti nilai header.

  • Pencocokan nilaiada di awal bagian tertentu dari permintaan web dan diikuti dengan karakter selain karakter alfanumerik atau garis bawah (_), misalnya,BadBot;.

  • Pencocokan nilaiada di akhir bagian tertentu dari permintaan web dan diawali dengan karakter selain karakter alfanumerik atau garis bawah (_), misalnya,;BadBot.

  • Pencocokan nilaiada di tengah bagian tertentu dari permintaan web dan diawali dan diikuti oleh karakter selain karakter alfanumerik atau garis bawah (_), misalnya,-BadBot;.

Tepat cocok

String dan nilai bagian tertentu dari permintaan identik.

Starts with

String muncul di awal bagian tertentu dari permintaan.

Ends with

String muncul di akhir bagian tertentu dari permintaan.

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.

Nilai adalah base64 dikodekan

Jika nilai dalamPencocokan nilaidikodekan base64, pilih kotak centang ini. Gunakan pengkodean base64 untuk menentukan karakter yang tidak dapat dicetak, seperti tab dan linefeed, yang disertakan penyerang dalam permintaan mereka.

Pencocokan nilai

Tentukan nilai yang Anda inginkanAWS WAFKlasik untuk mencari dalam permintaan web. Panjang maksimum adalah 50 byte. Jika Anda base64 encoding nilai, panjang maksimum 50-byte berlaku untuk nilai sebelum Anda menyankannya.

Menambahkan dan menghapus filter dalam kondisi pencocokan string

Anda dapat menambahkan filter ke kondisi pencocokan string atau menghapus filter. Untuk mengubah filter, tambahkan yang baru dan hapus yang lama.

Untuk menambah atau menghapus filter dalam kondisi pencocokan string

  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 syarat yang ingin Anda tambahkan atau hapus filter.

  4. Untuk menambahkan filter, lakukan langkah-langkah berikut ini:

    1. PilihTambahkan filter.

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

    3. Pilih Tambahkan.

  5. Untuk menghapus filter, lakukan langkah-langkah berikut ini:

    1. Pilih filter yang ingin Anda hapus.

    2. PilihHapus Filter.

Menghapus syarat kecocokan string

Jika Anda ingin menghapus kondisi pencocokan string, Anda harus terlebih dahulu menghapus semua filter dalam kondisi dan menghapus kondisi dari semua aturan yang menggunakannya, seperti yang dijelaskan dalam prosedur berikut.

Untuk menghapus syarat kecocokan string

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

    Jika Anda melihatBeralih keAWS WAFKlasikdi panel navigasi, pilih Peran.

  2. Hapus kondisi pencocokan string dari aturan yang menggunakannya:

    1. Di panel navigasi, pilih Aturan.

    2. Pilih nama aturan yang menggunakan kondisi pencocokan string 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 pencocokan string yang ingin Anda hapus.

  3. Hapus filter dari kondisi yang ingin Anda hapus:

    1. Di panel navigasi, pilihString dan regex pencocokan.

    2. Pilih nama syarat kecocokan string yang ingin Anda hapus.

    3. Di panel kanan, pilih kotak centang di sampingFilteruntuk memilih semua filter.

    4. PilihHapus filter.

  4. Di panel navigasi, pilihString dan regex pencocokan.

  5. DiKondisi pertandingan String dan regexpanel, pilih syarat kecocokan string yang ingin Anda hapus.

  6. PilihHapusuntuk menghapus kondisi yang dipilih.