

**Memperkenalkan pengalaman konsol baru untuk AWS WAF**

Anda sekarang dapat menggunakan pengalaman yang diperbarui untuk mengakses AWS WAF fungsionalitas di mana saja di konsol. Untuk detail selengkapnya, lihat [Bekerja dengan konsol](https://docs.aws.amazon.com/waf/latest/developerguide/working-with-console.html). 

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

# Bekerja dengan kondisi pencocokan skrip lintas situs
<a name="classic-web-acl-xss-conditions"></a>

**Awas**  
AWS WAF Klasik sedang melalui end-of-life proses yang direncanakan. Lihat AWS Health dasbor Anda untuk mengetahui tonggak sejarah dan tanggal khusus untuk Wilayah Anda.

**catatan**  
Ini adalah dokumentasi **AWS WAF Klasik**. Anda hanya boleh menggunakan versi ini jika Anda membuat AWS WAF sumber daya, seperti aturan dan web ACLs, AWS WAF sebelum November 2019, dan Anda belum memigrasikannya ke versi terbaru. Untuk memigrasi web Anda ACLs, lihat[Memigrasi sumber daya AWS WAF Klasik Anda ke AWS WAF](waf-migrating-from-classic.md).  
**Untuk versi terbaru AWS WAF**, lihat[AWS WAF](waf-chapter.md). 

Penyerang terkadang memasukkan skrip ke dalam permintaan web dalam upaya untuk mengeksploitasi kerentanan dalam aplikasi web. Anda dapat membuat satu atau beberapa kondisi pencocokan skrip lintas situs untuk mengidentifikasi bagian-bagian permintaan web, seperti URI atau string kueri, yang ingin AWS WAF Classic periksa kemungkinan skrip berbahaya. Kemudian dalam proses, ketika Anda membuat ACL web, Anda menentukan apakah akan mengizinkan atau memblokir permintaan yang tampaknya berisi skrip berbahaya.

**Topics**
+ [Membuat kondisi pencocokan skrip lintas situs](#classic-web-acl-xss-conditions-creating)
+ [Nilai yang Anda tentukan saat membuat atau mengedit kondisi pencocokan skrip lintas situs](#classic-web-acl-xss-conditions-values)
+ [Menambahkan dan menghapus filter dalam kondisi kecocokan skrip lintas situs](#classic-web-acl-xss-conditions-editing)
+ [Menghapus kondisi pencocokan skrip lintas situs](#classic-web-acl-xss-conditions-deleting)

## Membuat kondisi pencocokan skrip lintas situs
<a name="classic-web-acl-xss-conditions-creating"></a>

Saat Anda membuat kondisi pencocokan skrip lintas situs, Anda menentukan filter. Filter menunjukkan bagian dari permintaan web yang Anda ingin AWS WAF Classic untuk memeriksa skrip berbahaya, seperti URI atau string kueri. Anda dapat menambahkan lebih dari satu filter ke kondisi pencocokan skrip lintas situs, atau Anda dapat membuat kondisi terpisah untuk setiap filter. Inilah cara setiap konfigurasi memengaruhi perilaku AWS WAF Klasik:
+ **Lebih dari satu filter per kondisi pencocokan skrip lintas situs (disarankan)** — Saat Anda menambahkan kondisi pencocokan skrip lintas situs yang berisi beberapa filter ke aturan dan menambahkan aturan ke ACL web, permintaan web harus cocok hanya dengan salah satu filter dalam kondisi pencocokan skrip lintas situs untuk AWS WAF Classic untuk mengizinkan atau memblokir permintaan berdasarkan kondisi tersebut.

  Misalnya, Anda membuat satu kondisi pencocokan skrip lintas situs, dan kondisi tersebut berisi dua filter. Satu filter menginstruksikan AWS WAF Classic untuk memeriksa URI untuk skrip berbahaya, dan yang lainnya menginstruksikan AWS WAF Classic untuk memeriksa string kueri. AWS WAF Classic mengizinkan atau memblokir permintaan jika tampaknya berisi skrip berbahaya *baik* di URI *atau* dalam string kueri.
+ **Satu filter per kondisi pencocokan skrip lintas situs** — Saat Anda menambahkan kondisi pencocokan skrip lintas situs terpisah ke aturan dan menambahkan aturan ke ACL web, permintaan web harus cocok dengan semua kondisi untuk AWS WAF Classic untuk mengizinkan atau memblokir permintaan berdasarkan kondisi. 

  Misalkan Anda membuat dua kondisi, dan setiap kondisi berisi salah satu dari dua filter dalam contoh sebelumnya. Saat Anda menambahkan kedua kondisi ke aturan yang sama dan menambahkan aturan ke ACL web, AWS WAF Classic mengizinkan atau memblokir permintaan hanya jika URI dan string kueri tampaknya berisi skrip berbahaya.

**catatan**  
Saat menambahkan kondisi pencocokan skrip lintas situs ke aturan, Anda juga dapat mengonfigurasi AWS WAF Classic untuk mengizinkan atau memblokir permintaan web yang tampaknya *tidak* mengandung skrip berbahaya.<a name="classic-web-acl-xss-conditions-creating-procedure"></a>

**Untuk membuat kondisi pencocokan skrip lintas situs**

1. Masuk ke Konsol Manajemen AWS dan buka AWS WAF konsol di [https://console.aws.amazon.com/wafv2/](https://console.aws.amazon.com/wafv2/). 

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

1. Di panel navigasi, pilih **Cross-site scripting**.

1. Pilih **Buat kondisi**.

1. Tentukan pengaturan filter yang berlaku. Untuk informasi selengkapnya, lihat [Nilai yang Anda tentukan saat membuat atau mengedit kondisi pencocokan skrip lintas situs](#classic-web-acl-xss-conditions-values).

1. Pilih **Tambahkan filter lain**.

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

1. Setelah selesai menambahkan filter, pilih **Buat**.

## Nilai yang Anda tentukan saat membuat atau mengedit kondisi pencocokan skrip lintas situs
<a name="classic-web-acl-xss-conditions-values"></a>

Saat Anda membuat atau memperbarui kondisi pencocokan skrip lintas situs, Anda menentukan nilai berikut: 

**Nama**  
Nama kondisi pencocokan skrip lintas situs.  
Nama hanya dapat berisi karakter A-Z, a-z, 0-9, dan karakter khusus: \$1-\$1” \$1`\$1\$1\$1, ./. Anda tidak dapat mengubah nama kondisi setelah Anda membuatnya.

**Bagian dari permintaan untuk memfilter**  
Pilih bagian dari setiap permintaan web yang ingin AWS WAF Classic periksa untuk skrip berbahaya:    
**Header**  
Sebuah header permintaan tertentu, misalnya, `User-Agent` atau `Referer` header. Jika Anda memilih **Header**, tentukan nama **header di bidang Header**.  
**Metode HTTP**  
Metode HTTP, yang menunjukkan jenis operasi yang diminta permintaan asal untuk dilakukan. CloudFront mendukung metode berikut:`DELETE`,`GET`,`HEAD`,`OPTIONS`,`PATCH`,`POST`, dan`PUT`.  
**String kueri**  
Bagian dari URL yang muncul setelah `?` karakter, jika ada.  
Untuk kondisi pencocokan skrip lintas situs, kami sarankan Anda memilih **Semua parameter kueri (hanya nilai)** alih-alih **String kueri** untuk **Bagian dari permintaan untuk memfilter**.  
**URI**  
Jalur URI permintaan, yang mengidentifikasi sumber daya, misalnya,`/images/daily-ad.jpg`. Ini tidak termasuk string kueri atau komponen fragmen URI. Untuk selengkapnya, lihat [Uniform Resource Identifier (URI): Generic](https://tools.ietf.org/html/rfc3986#section-3.3) Syntax.   
Kecuali **Transformasi** ditentukan, 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 permintaan HTTP, seperti data dari formulir.  
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](classic-web-acl-size-conditions.md).  
**Parameter kueri tunggal (hanya nilai)**  
Parameter apa pun yang telah Anda definisikan sebagai bagian dari string kueri. Misalnya, jika URL adalah “www.xyz.com? UserName =abc& SalesRegion =seattle” Anda dapat menambahkan filter ke parameter atau. *UserName*SalesRegion**   
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 *UserName*atau *SalesRegion*. Panjang maksimum untuk **nama parameter Query** adalah 30 karakter. **Nama parameter kueri** tidak peka huruf besar/kecil. Misalnya, Anda menentukan *UserName*sebagai **nama parameter Query**, ini akan cocok dengan semua variasi *UserName*, seperti *nama pengguna* dan *Kami ERName*.  
**Semua parameter kueri (hanya nilai)**  
Mirip dengan **Parameter kueri tunggal (hanya nilai)**, tetapi alih-alih memeriksa nilai parameter tunggal, AWS WAF Classic memeriksa semua nilai parameter dalam string kueri untuk kemungkinan skrip berbahaya. Misalnya, jika URL adalah “www.xyz.com? UserName =abc& SalesRegion =seattle,” dan Anda memilih **Semua parameter kueri (hanya nilai)**, AWS WAF Classic akan memicu kecocokan jika nilai atau mengandung kemungkinan skrip berbahaya. *UserName*SalesRegion** 

**Header**  
Jika Anda memilih **Header** untuk **Bagian dari permintaan untuk difilter**, pilih header dari daftar header umum, atau masukkan nama header yang ingin Anda periksa AWS WAF Classic untuk skrip berbahaya.

**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).  
**Dekode HTML**  
AWS WAF Klasik menggantikan karakter yang dikodekan HTML dengan karakter yang tidak dikodekan:  
+ Mengganti `&quot;` dengan `&`
+ Mengganti `&nbsp;` 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):  
+ \$1 f, formfeed, desimal 12
+ \$1 t, tab, desimal 9
+ \$1 n, baris baru, desimal 10
+ \$1 r, pengembalian pengangkutan, desimal 13
+ \$1 v, tab vertikal, desimal 11
+ spasi tanpa pindah baris, desimal 160
Selain itu, opsi ini menggantikan beberapa spasi dengan satu spasi.  
**Sederhanakan baris perintah**  
Untuk permintaan yang berisi perintah baris perintah sistem operasi, gunakan opsi ini untuk melakukan transformasi berikut:  
+ Menghapus karakter berikut: \$1 " ' ^
+ 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)  
**Dekode URL**  
Mendekode permintaan yang dikodekan URL.

## Menambahkan dan menghapus filter dalam kondisi kecocokan skrip lintas situs
<a name="classic-web-acl-xss-conditions-editing"></a>

Anda dapat menambahkan atau menghapus filter dalam kondisi pencocokan skrip lintas situs. Untuk mengubah filter, tambahkan yang baru dan hapus yang lama.<a name="classic-web-acl-xss-conditions-editing-procedure"></a>

**Untuk menambah atau menghapus filter dalam kondisi pencocokan skrip lintas situs**

1. Masuk ke Konsol Manajemen AWS dan buka AWS WAF konsol di [https://console.aws.amazon.com/wafv2/](https://console.aws.amazon.com/wafv2/). 

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

1. Di panel navigasi, pilih **Cross-site scripting**.

1. Pilih kondisi yang ingin Anda tambahkan atau hapus filter.

1. Untuk menambahkan filter, lakukan langkah-langkah berikut:

   1. Pilih **Tambahkan filter**.

   1. Tentukan pengaturan filter yang berlaku. Untuk informasi selengkapnya, lihat [Nilai yang Anda tentukan saat membuat atau mengedit kondisi pencocokan skrip lintas situs](#classic-web-acl-xss-conditions-values).

   1. Pilih **Tambahkan**.

1. Untuk menghapus filter, lakukan langkah-langkah berikut:

   1. Pilih filter yang ingin Anda hapus.

   1. Pilih **Hapus filter**.

## Menghapus kondisi pencocokan skrip lintas situs
<a name="classic-web-acl-xss-conditions-deleting"></a>

Jika Anda ingin menghapus kondisi pencocokan skrip lintas situs, Anda harus terlebih dahulu menghapus semua filter dalam kondisi dan menghapus kondisi dari semua aturan yang menggunakannya, seperti yang dijelaskan dalam prosedur berikut.<a name="classic-web-acl-xss-conditions-deleting-procedure"></a>

**Untuk menghapus kondisi pencocokan skrip lintas situs**

1. Masuk ke Konsol Manajemen AWS dan buka AWS WAF konsol di [https://console.aws.amazon.com/wafv2/](https://console.aws.amazon.com/wafv2/). 

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

1. Di panel navigasi, pilih **Cross-site scripting**.

1. Di panel **Kondisi pencocokan skrip lintas situs, pilih kondisi** pencocokan skrip lintas situs yang ingin Anda hapus.

1. Di panel kanan, pilih tab **Aturan terkait**.

   Jika daftar aturan yang menggunakan kondisi pencocokan skrip lintas situs ini kosong, lanjutkan ke langkah 6. Jika daftar berisi aturan, catat aturan, dan lanjutkan dengan langkah 5.

1. Untuk menghapus kondisi pencocokan skrip lintas situs dari aturan yang menggunakannya, lakukan langkah-langkah berikut:

   1. Di panel navigasi, pilih **Aturan**.

   1. Pilih nama aturan yang menggunakan kondisi pencocokan skrip lintas situs yang ingin Anda hapus.

   1. Di panel kanan, pilih kondisi pencocokan skrip lintas situs yang ingin Anda hapus dari aturan, dan pilih **Hapus** kondisi yang dipilih.

   1. Ulangi langkah b dan c untuk semua aturan yang tersisa yang menggunakan kondisi pencocokan skrip lintas situs yang ingin Anda hapus.

   1. Di panel navigasi, pilih **Cross-site scripting**.

   1. Di panel **Kondisi pencocokan skrip lintas situs, pilih kondisi** pencocokan skrip lintas situs yang ingin Anda hapus.

1. Pilih **Hapus** untuk menghapus kondisi yang dipilih.