

**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.

# Menyesuaikan pengaturan pernyataan aturan di AWS WAF
<a name="waf-rule-statement-fields"></a>

Bagian ini menjelaskan pengaturan yang dapat Anda tentukan dalam pernyataan aturan yang memeriksa komponen permintaan web. Untuk informasi tentang penggunaan, lihat pernyataan aturan individual di[Menggunakan pernyataan aturan kecocokan di AWS WAF](waf-rule-statements-match.md). 

Subset dari komponen permintaan web ini juga dapat digunakan dalam aturan berbasis tarif, sebagai kunci agregasi permintaan kustom. Untuk informasi, lihat [Menggabungkan aturan berbasis tarif di AWS WAF](waf-rule-statement-type-rate-based-aggregation-options.md).

Untuk pengaturan komponen permintaan, Anda menentukan jenis komponen itu sendiri, dan opsi tambahan apa pun, tergantung pada jenis komponen. Misalnya, saat memeriksa jenis komponen yang berisi teks, Anda dapat menerapkan transformasi teks sebelum memeriksanya. 

**catatan**  
Kecuali dinyatakan lain, jika permintaan web tidak memiliki komponen permintaan yang ditentukan dalam pernyataan aturan, AWS WAF mengevaluasi permintaan sebagai tidak cocok dengan kriteria aturan.

**Contents**
+ [Minta komponen di AWS WAF](waf-rule-statement-fields-list.md)
  + [Metode HTTP](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-http-method)
  + [Header tunggal](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-single-header)
  + [Semua header](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-headers)
  + [Urutan header](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-header-order)
  + [Cookie](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-cookies)
  + [Fragmen URI](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-uri-fragment)
  + [Jalur URI](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-uri-path)
  + [JA3 sidik jari](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-ja3-fingerprint)
  + [JA4 sidik jari](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-ja4-fingerprint)
  + [String kueri](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-query-string)
  + [Parameter kueri tunggal](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-single-query-param)
  + [Semua parameter kueri](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-all-query-params)
  + [Tubuh](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-body)
  + [Tubuh JSON](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-json-body)
+ [Menggunakan alamat IP yang diteruskan di AWS WAF](waf-rule-statement-forwarded-ip-address.md)
+ [Memeriksa header semu HTTP/2 di AWS WAF](waf-rule-statement-request-components-for-http2-pseudo-headers.md)
+ [Menggunakan transformasi teks di AWS WAF](waf-rule-statement-transformation.md)

# Minta komponen di AWS WAF
<a name="waf-rule-statement-fields-list"></a>

Bagian ini menjelaskan komponen permintaan web yang dapat Anda tentukan untuk diperiksa. Anda menentukan komponen permintaan untuk pernyataan aturan kecocokan yang mencari pola di dalam permintaan web. Jenis pernyataan ini termasuk pencocokan string, pencocokan regex, batasan ukuran, dan pernyataan serangan injeksi SQL. Untuk informasi tentang cara menggunakan setelan komponen permintaan ini, lihat pernyataan aturan individual di [Menggunakan pernyataan aturan kecocokan di AWS WAF](waf-rule-statements-match.md)

Kecuali dinyatakan lain, jika permintaan web tidak memiliki komponen permintaan yang ditentukan dalam pernyataan aturan, AWS WAF mengevaluasi permintaan sebagai tidak cocok dengan kriteria aturan.

**catatan**  
Anda menentukan komponen permintaan tunggal untuk setiap pernyataan aturan yang memerlukannya. Untuk memeriksa lebih dari satu komponen permintaan, buat pernyataan aturan untuk setiap komponen. 

Dokumentasi AWS WAF konsol dan API memberikan panduan untuk pengaturan komponen permintaan di lokasi berikut: 
+ **Pembuat aturan** **di konsol — Dalam pengaturan **Pernyataan** untuk jenis aturan reguler, pilih komponen yang ingin Anda periksa dalam dialog Inspect di bawah **Minta** komponen.**
+ **Isi pernyataan API** - `FieldToMatch`

Sisa bagian ini menjelaskan opsi untuk bagian permintaan web untuk diperiksa. 

**Topics**
+ [Metode HTTP](#waf-rule-statement-request-component-http-method)
+ [Header tunggal](#waf-rule-statement-request-component-single-header)
+ [Semua header](#waf-rule-statement-request-component-headers)
+ [Urutan header](#waf-rule-statement-request-component-header-order)
+ [Cookie](#waf-rule-statement-request-component-cookies)
+ [Fragmen URI](#waf-rule-statement-request-component-uri-fragment)
+ [Jalur URI](#waf-rule-statement-request-component-uri-path)
+ [JA3 sidik jari](#waf-rule-statement-request-component-ja3-fingerprint)
+ [JA4 sidik jari](#waf-rule-statement-request-component-ja4-fingerprint)
+ [String kueri](#waf-rule-statement-request-component-query-string)
+ [Parameter kueri tunggal](#waf-rule-statement-request-component-single-query-param)
+ [Semua parameter kueri](#waf-rule-statement-request-component-all-query-params)
+ [Tubuh](#waf-rule-statement-request-component-body)
+ [Tubuh JSON](#waf-rule-statement-request-component-json-body)

## Metode HTTP
<a name="waf-rule-statement-request-component-http-method"></a>

Memeriksa metode HTTP untuk permintaan. Metode HTTP menunjukkan jenis operasi yang permintaan web meminta sumber daya yang dilindungi untuk melakukan, seperti `POST` atau`GET`. 

## Header tunggal
<a name="waf-rule-statement-request-component-single-header"></a>

Memeriksa satu header bernama dalam permintaan. 

Untuk opsi ini, Anda menentukan nama header, misalnya, `User-Agent` atau`Referer`. Pencocokan string untuk nama tidak peka huruf besar/kecil dan dilakukan setelah memotong spasi depan dan belakang dari header permintaan dan aturan.

## Semua header
<a name="waf-rule-statement-request-component-headers"></a>

Memeriksa semua header permintaan, termasuk cookie. Anda dapat menerapkan filter untuk memeriksa subset dari semua header. 

Untuk opsi ini, Anda memberikan spesifikasi berikut: 
+ **Pola kecocokan** — Filter yang digunakan untuk mendapatkan subset header untuk diperiksa. AWS WAF mencari pola-pola ini di tombol header. 

  Pengaturan pola kecocokan dapat berupa salah satu dari berikut ini: 
  + **Semua** — Cocokkan semua kunci. Evaluasi kriteria pemeriksaan aturan untuk semua header. 
  + **Header yang dikecualikan** - Periksa hanya header yang kuncinya tidak cocok dengan string yang Anda tentukan di sini. Pencocokan string untuk kunci tidak peka huruf besar/kecil. Pencocokan dilakukan setelah memangkas spasi depan dan belakang dari header permintaan dan aturan kecocokan.
  + **Header yang disertakan** - Periksa hanya header yang memiliki kunci yang cocok dengan salah satu string yang Anda tentukan di sini. Pencocokan string untuk kunci tidak peka huruf besar/kecil. Pencocokan dilakukan setelah memangkas spasi depan dan belakang dari header permintaan dan aturan kecocokan.
+ **Lingkup kecocokan** — Bagian-bagian header yang AWS WAF harus diperiksa dengan kriteria pemeriksaan aturan. Anda dapat menentukan **Kunci**, **Nilai**, atau **Semua** untuk memeriksa kunci dan nilai untuk kecocokan. 

  **Semua** tidak memerlukan kecocokan untuk ditemukan di kunci dan kecocokan untuk ditemukan dalam nilai. Ini membutuhkan kecocokan untuk ditemukan di kunci atau nilai atau keduanya. Untuk meminta kecocokan dalam kunci dan nilai, gunakan `AND` pernyataan logis untuk menggabungkan dua aturan kecocokan, satu yang memeriksa kunci dan yang lain yang memeriksa nilai. 
+ **Oversize handling** — Bagaimana AWS WAF seharusnya menangani permintaan yang memiliki data header yang lebih besar dari yang AWS WAF dapat diperiksa. AWS WAF dapat memeriksa paling banyak 8 KB pertama (8.192 byte) dari header permintaan dan paling banyak 200 header pertama. Konten tersedia untuk diperiksa AWS WAF hingga batas pertama yang tercapai. Anda dapat memilih untuk melanjutkan inspeksi, atau melewati inspeksi dan menandai permintaan sebagai cocok atau tidak cocok dengan aturan. Untuk informasi selengkapnya tentang penanganan konten yang terlalu besar, lihat[Komponen permintaan web yang terlalu besar di AWS WAF](waf-oversize-request-components.md).

## Urutan header
<a name="waf-rule-statement-request-component-header-order"></a>

Periksa string yang berisi daftar nama header permintaan, diurutkan seperti yang muncul di permintaan web yang AWS WAF menerima untuk inspeksi. AWS WAF menghasilkan string dan kemudian menggunakannya sebagai bidang untuk mencocokkan komponen dalam inspeksinya. AWS WAF memisahkan nama header dalam string dengan titik dua dan tanpa spasi tambahan, misalnya. `host:user-agent:accept:authorization:referer`

Untuk opsi ini, Anda memberikan spesifikasi berikut: 
+ **Oversize handling** — Bagaimana AWS WAF seharusnya menangani permintaan yang memiliki data header yang lebih banyak atau lebih besar daripada yang AWS WAF dapat diperiksa. AWS WAF dapat memeriksa paling banyak 8 KB pertama (8.192 byte) dari header permintaan dan paling banyak 200 header pertama. Konten tersedia untuk diperiksa AWS WAF hingga batas pertama yang tercapai. Anda dapat memilih untuk terus memeriksa header yang tersedia, atau melewati inspeksi dan menandai permintaan sebagai cocok atau tidak cocok dengan aturan. Untuk informasi selengkapnya tentang penanganan konten yang terlalu besar, lihat[Komponen permintaan web yang terlalu besar di AWS WAF](waf-oversize-request-components.md).

## Cookie
<a name="waf-rule-statement-request-component-cookies"></a>

Memeriksa semua cookie permintaan. Anda dapat menerapkan filter untuk memeriksa subset dari semua cookie. 

Untuk opsi ini, Anda memberikan spesifikasi berikut: 
+ **Pola kecocokan** — Filter yang digunakan untuk mendapatkan subset cookie untuk diperiksa. AWS WAF mencari pola-pola ini di kunci cookie. 

  Pengaturan pola kecocokan dapat berupa salah satu dari berikut ini: 
  + **Semua** — Cocokkan semua kunci. Evaluasi kriteria pemeriksaan aturan untuk semua cookie. 
  + **Cookie yang dikecualikan** — Periksa hanya cookie yang kuncinya tidak cocok dengan string apa pun yang Anda tentukan di sini. Pencocokan string untuk kunci peka huruf besar/kecil dan harus tepat. 
  + **Cookie yang disertakan** — Periksa hanya cookie yang memiliki kunci yang cocok dengan salah satu string yang Anda tentukan di sini. Pencocokan string untuk kunci peka huruf besar/kecil dan harus tepat. 
+ **Lingkup kecocokan** — Bagian-bagian cookie yang AWS WAF harus diperiksa dengan kriteria pemeriksaan aturan. Anda dapat menentukan **Kunci**, **Nilai**, atau **Semua** untuk kedua kunci dan nilai. 

  **Semua** tidak memerlukan kecocokan untuk ditemukan di kunci dan kecocokan untuk ditemukan dalam nilai. Ini membutuhkan kecocokan untuk ditemukan di kunci atau nilai atau keduanya. Untuk meminta kecocokan dalam kunci dan nilai, gunakan `AND` pernyataan logis untuk menggabungkan dua aturan kecocokan, satu yang memeriksa kunci dan yang lain yang memeriksa nilai. 
+ **Oversize handling** — Bagaimana AWS WAF seharusnya menangani permintaan yang memiliki data cookie yang lebih besar dari yang AWS WAF dapat diperiksa. AWS WAF dapat memeriksa paling banyak 8 KB pertama (8.192 byte) dari cookie permintaan dan paling banyak 200 cookie pertama. Konten tersedia untuk diperiksa AWS WAF hingga batas pertama yang tercapai. Anda dapat memilih untuk melanjutkan inspeksi, atau melewati inspeksi dan menandai permintaan sebagai cocok atau tidak cocok dengan aturan. Untuk informasi selengkapnya tentang penanganan konten yang terlalu besar, lihat[Komponen permintaan web yang terlalu besar di AWS WAF](waf-oversize-request-components.md).

## Fragmen URI
<a name="waf-rule-statement-request-component-uri-fragment"></a>

**catatan**  
Pemeriksaan Fragmen Uri hanya tersedia untuk CloudFront distribusi dan Application Load Balancer.

Memeriksa bagian URL yang mengikuti simbol “\$1”, memberikan informasi tambahan tentang sumber daya, misalnya, \$1section2. Untuk selengkapnya, lihat [Uniform Resource Identifier (URI): Generic](https://tools.ietf.org/html/rfc3986#section-3) Syntax. 

Jika Anda tidak menggunakan transformasi teks dengan opsi ini, AWS WAF tidak menormalkan fragmen URI dan memeriksanya persis seperti yang diterimanya dari klien dalam permintaan. Untuk informasi tentang transformasi teks, lihat[Menggunakan transformasi teks di AWS WAF](waf-rule-statement-transformation.md).

**Persyaratan pernyataan aturan**  
Anda harus memberikan perilaku fallback untuk pernyataan aturan ini. Perilaku fallback adalah status pencocokan yang ingin Anda tetapkan AWS WAF ke permintaan web jika URI kehilangan fragmen atau layanan terkait bukan Application Load Balancer atau. CloudFront Jika Anda memilih untuk mencocokkan, AWS WAF memperlakukan permintaan sebagai pencocokan pernyataan aturan dan menerapkan tindakan aturan ke permintaan. Jika Anda memilih untuk tidak cocok, AWS WAF memperlakukan permintaan sebagai tidak cocok dengan pernyataan aturan.

## Jalur URI
<a name="waf-rule-statement-request-component-uri-path"></a>

Memeriksa bagian URL yang mengidentifikasi sumber daya, misalnya,. `/images/daily-ad.jpg` Untuk selengkapnya, lihat [Uniform Resource Identifier (URI): Generic](https://tools.ietf.org/html/rfc3986#section-3) Syntax. 

Jika Anda tidak menggunakan transformasi teks dengan opsi ini, AWS WAF tidak menormalkan URI dan memeriksanya persis seperti yang diterimanya dari klien dalam permintaan. Untuk informasi tentang transformasi teks, lihat[Menggunakan transformasi teks di AWS WAF](waf-rule-statement-transformation.md).

## JA3 sidik jari
<a name="waf-rule-statement-request-component-ja3-fingerprint"></a>

Memeriksa JA3 sidik jari permintaan. 

**catatan**  
JA3 pemeriksaan sidik jari hanya tersedia untuk CloudFront distribusi Amazon dan Application Load Balancer.

 JA3 Sidik jari adalah hash 32 karakter yang berasal dari TLS Client Hello dari permintaan yang masuk. Sidik jari ini berfungsi sebagai pengenal unik untuk konfigurasi TLS klien. AWS WAF menghitung dan mencatat sidik jari ini untuk setiap permintaan yang memiliki cukup informasi TLS Client Hello untuk perhitungan. Hampir semua permintaan web menyertakan informasi ini.

**Cara mendapatkan JA3 sidik jari untuk klien**  
Anda dapat memperoleh JA3 sidik jari untuk permintaan klien dari log paket perlindungan (web ACL). Jika AWS WAF mampu menghitung sidik jari, itu termasuk dalam log. Untuk informasi tentang bidang logging, lihat[Bidang log untuk lalu lintas paket perlindungan (web ACL)](logging-fields.md).

**Persyaratan pernyataan aturan**  
Anda dapat memeriksa JA3 sidik jari hanya di dalam pernyataan pencocokan string yang diatur agar sama persis dengan string yang Anda berikan. Berikan string JA3 sidik jari dari log dalam spesifikasi pernyataan pencocokan string Anda, agar sesuai dengan permintaan future yang memiliki konfigurasi TLS yang sama. Untuk informasi tentang pernyataan kecocokan string, lihat[Pernyataan aturan kecocokan string](waf-rule-statement-type-string-match.md).

Anda harus memberikan perilaku fallback untuk pernyataan aturan ini. Perilaku fallback adalah status pencocokan yang ingin AWS WAF Anda tetapkan ke permintaan web jika tidak dapat menghitung AWS WAF sidik jari. JA3 Jika Anda memilih untuk mencocokkan, AWS WAF memperlakukan permintaan sebagai pencocokan pernyataan aturan dan menerapkan tindakan aturan ke permintaan. Jika Anda memilih untuk tidak cocok, AWS WAF memperlakukan permintaan sebagai tidak cocok dengan pernyataan aturan.

Untuk menggunakan opsi pencocokan ini, Anda harus mencatat lalu lintas paket perlindungan (web ACL) Anda. Untuk informasi, lihat [Lalu lintas paket AWS WAF perlindungan pencatatan (web ACL)](logging.md).

## JA4 sidik jari
<a name="waf-rule-statement-request-component-ja4-fingerprint"></a>

Memeriksa JA4 sidik jari permintaan. 

**catatan**  
JA4 pemeriksaan sidik jari hanya tersedia untuk CloudFront distribusi Amazon dan Application Load Balancer.

 JA4 Sidik jari adalah hash 36 karakter yang berasal dari TLS Client Hello dari permintaan yang masuk. Sidik jari ini berfungsi sebagai pengenal unik untuk konfigurasi TLS klien. JA4 sidik jari adalah perpanjangan dari JA3 sidik jari yang dapat menghasilkan lebih sedikit sidik jari unik untuk beberapa browser. AWS WAF menghitung dan mencatat sidik jari ini untuk setiap permintaan yang memiliki cukup informasi TLS Client Hello untuk perhitungan. Hampir semua permintaan web menyertakan informasi ini.

**Cara mendapatkan JA4 sidik jari untuk klien**  
Anda dapat memperoleh JA4 sidik jari untuk permintaan klien dari log paket perlindungan (web ACL). Jika AWS WAF mampu menghitung sidik jari, itu termasuk dalam log. Untuk informasi tentang bidang logging, lihat[Bidang log untuk lalu lintas paket perlindungan (web ACL)](logging-fields.md).

**Persyaratan pernyataan aturan**  
Anda dapat memeriksa JA4 sidik jari hanya di dalam pernyataan pencocokan string yang diatur agar sama persis dengan string yang Anda berikan. Berikan string JA4 sidik jari dari log dalam spesifikasi pernyataan pencocokan string Anda, agar sesuai dengan permintaan future yang memiliki konfigurasi TLS yang sama. Untuk informasi tentang pernyataan kecocokan string, lihat[Pernyataan aturan kecocokan string](waf-rule-statement-type-string-match.md).

Anda harus memberikan perilaku fallback untuk pernyataan aturan ini. Perilaku fallback adalah status pencocokan yang ingin AWS WAF Anda tetapkan ke permintaan web jika tidak dapat menghitung AWS WAF sidik jari. JA4 Jika Anda memilih untuk mencocokkan, AWS WAF memperlakukan permintaan sebagai pencocokan pernyataan aturan dan menerapkan tindakan aturan ke permintaan. Jika Anda memilih untuk tidak cocok, AWS WAF memperlakukan permintaan sebagai tidak cocok dengan pernyataan aturan.

Untuk menggunakan opsi pencocokan ini, Anda harus mencatat lalu lintas paket perlindungan (web ACL) Anda. Untuk informasi, lihat [Lalu lintas paket AWS WAF perlindungan pencatatan (web ACL)](logging.md).

## String kueri
<a name="waf-rule-statement-request-component-query-string"></a>

Memeriksa bagian URL yang muncul setelah `?` karakter, jika ada.

**catatan**  
Untuk pernyataan pencocokan skrip lintas situs, kami sarankan Anda memilih **Semua parameter kueri**, bukan string **Kueri**. Memilih **Semua parameter kueri** menambahkan 10 WCUs ke biaya dasar.

## Parameter kueri tunggal
<a name="waf-rule-statement-request-component-single-query-param"></a>

Memeriksa parameter query tunggal yang telah Anda definisikan sebagai bagian dari string query. AWS WAF memeriksa nilai parameter yang Anda tentukan. 

Untuk opsi ini, Anda juga menentukan **argumen Query**. Misalnya, jika URL-nya`www.xyz.com?UserName=abc&SalesRegion=seattle`, Anda dapat menentukan `UserName` atau `SalesRegion` untuk argumen kueri. Panjang maksimum untuk nama argumen adalah 30 karakter. Nama ini tidak peka huruf besar/kecil, jadi jika Anda menentukan`UserName`, AWS WAF cocok dengan semua variasi`UserName`, termasuk `username` dan`UsERName`.

Jika string kueri berisi lebih dari satu contoh argumen kueri yang telah Anda tentukan, AWS WAF periksa semua nilai untuk kecocokan, menggunakan OR logika. Misalnya, di URL`www.xyz.com?SalesRegion=boston&SalesRegion=seattle`, AWS WAF mengevaluasi nama yang telah Anda tentukan terhadap `boston` dan`seattle`. Jika keduanya cocok, inspeksi adalah kecocokan.

## Semua parameter kueri
<a name="waf-rule-statement-request-component-all-query-params"></a>

Memeriksa semua parameter kueri dalam permintaan. Ini mirip dengan pilihan komponen parameter kueri tunggal, tetapi AWS WAF memeriksa nilai semua argumen dalam string kueri. Misalnya, jika URL-nya`www.xyz.com?UserName=abc&SalesRegion=seattle`, AWS WAF memicu kecocokan jika nilai `UserName` atau `SalesRegion` cocok dengan kriteria inspeksi. 

Memilih opsi ini WCUs menambah 10 biaya dasar.

## Tubuh
<a name="waf-rule-statement-request-component-body"></a>

Memeriksa badan permintaan, dievaluasi sebagai teks biasa. Anda juga dapat mengevaluasi tubuh sebagai JSON menggunakan jenis JSON konten. 

Badan permintaan adalah bagian dari permintaan yang segera mengikuti header permintaan. Ini berisi data tambahan yang diperlukan untuk permintaan web, misalnya, data dari formulir. 
+ Di konsol, Anda memilih ini di bawah **opsi Permintaan** pilihan **Badan**, dengan memilih pilihan **Jenis konten** **Teks biasa**. 
+ Di API, dalam `FieldToMatch` spesifikasi aturan, Anda menentukan `Body` untuk memeriksa isi permintaan sebagai teks biasa.

Untuk Application Load Balancer dan AWS AppSync, AWS WAF dapat memeriksa 8 KB pertama dari badan permintaan. Untuk CloudFront, API Gateway, Amazon Cognito, App Runner, dan Akses Terverifikasi, secara default, AWS WAF dapat memeriksa 16 KB pertama, dan Anda dapat meningkatkan batas hingga 64 KB dalam konfigurasi paket perlindungan (web ACL). Untuk informasi selengkapnya, lihat [Pertimbangan untuk mengelola inspeksi tubuh di AWS WAF](web-acl-setting-body-inspection-limit.md).

Anda harus menentukan penanganan oversize untuk jenis komponen ini. Oversize handling mendefinisikan bagaimana AWS WAF menangani permintaan yang memiliki data body yang lebih besar dari yang AWS WAF dapat diperiksa. Anda dapat memilih untuk melanjutkan inspeksi, atau melewati inspeksi dan menandai permintaan sebagai cocok atau tidak cocok dengan aturan. Untuk informasi selengkapnya tentang penanganan konten yang terlalu besar, lihat[Komponen permintaan web yang terlalu besar di AWS WAF](waf-oversize-request-components.md). 

Anda juga dapat mengevaluasi tubuh sebagai JSON yang diurai. Untuk informasi tentang ini, lihat bagian berikut. 

## Tubuh JSON
<a name="waf-rule-statement-request-component-json-body"></a>

Memeriksa badan permintaan, dievaluasi sebagai JSON. Anda juga dapat mengevaluasi tubuh sebagai teks biasa. 

Badan permintaan adalah bagian dari permintaan yang segera mengikuti header permintaan. Ini berisi data tambahan yang diperlukan untuk permintaan web, misalnya, data dari formulir. 
+ Di konsol, Anda memilih ini di bawah **pilihan opsi Request** **Body**, dengan memilih pilihan **Jenis konten** **JSON**. 
+ Di API, dalam `FieldToMatch` spesifikasi aturan, Anda menentukan`JsonBody`.

Untuk Application Load Balancer dan AWS AppSync, AWS WAF dapat memeriksa 8 KB pertama dari badan permintaan. Untuk CloudFront, API Gateway, Amazon Cognito, App Runner, dan Akses Terverifikasi, secara default, AWS WAF dapat memeriksa 16 KB pertama, dan Anda dapat meningkatkan batas hingga 64 KB dalam konfigurasi paket perlindungan (web ACL). Untuk informasi selengkapnya, lihat [Pertimbangan untuk mengelola inspeksi tubuh di AWS WAF](web-acl-setting-body-inspection-limit.md).

Anda harus menentukan penanganan oversize untuk jenis komponen ini. Oversize handling mendefinisikan bagaimana AWS WAF menangani permintaan yang memiliki data body yang lebih besar dari yang AWS WAF dapat diperiksa. Anda dapat memilih untuk melanjutkan inspeksi, atau melewati inspeksi dan menandai permintaan sebagai cocok atau tidak cocok dengan aturan. Untuk informasi selengkapnya tentang penanganan konten yang terlalu besar, lihat[Komponen permintaan web yang terlalu besar di AWS WAF](waf-oversize-request-components.md). 

Memilih opsi ini menggandakan biaya WCUs dasar pernyataan pertandingan. Misalnya, jika biaya dasar pernyataan kecocokan adalah 5 WCUs tanpa penguraian JSON, menggunakan parsing JSON menggandakan biaya menjadi 10. WCUs 

Untuk opsi ini, Anda memberikan spesifikasi tambahan, seperti yang dijelaskan di bagian berikut.

**Bagaimana AWS WAF menangani inspeksi tubuh JSON**  
Saat AWS WAF memeriksa badan permintaan web sebagai JSON, ia melakukan langkah-langkah untuk mengurai tubuh dan mengekstrak elemen JSON untuk diperiksa. AWS WAF melakukan langkah-langkah ini sesuai dengan pilihan konfigurasi Anda. 

Berikut ini mencantumkan langkah-langkah yang AWS WAF dilakukan. 

1. **Parse isi isi tubuh** - AWS WAF mem-parsing isi badan permintaan web untuk mengekstrak elemen JSON untuk diperiksa. AWS WAF melakukan yang terbaik untuk mengurai seluruh isi tubuh, tetapi penguraian dapat gagal untuk berbagai status kesalahan dalam konten. Contohnya termasuk karakter yang tidak valid, kunci duplikat, pemotongan, dan konten yang simpul akarnya bukan objek atau array. 

   Opsi **Body parsing fallback behavior** menentukan AWS WAF apa yang dilakukan jika gagal mengurai body JSON sepenuhnya: 
   + **Tidak ada (perilaku default)** - AWS WAF mengevaluasi konten hanya sampai pada titik di mana ia mengalami kesalahan penguraian. 
   + **Evaluasi sebagai string** - Periksa tubuh sebagai teks biasa. AWS WAF menerapkan transformasi teks dan kriteria inspeksi yang Anda tentukan untuk inspeksi JSON ke string teks isi.
   + **Cocokkan** - Perlakukan permintaan web sebagai pencocokan pernyataan aturan. AWS WAF menerapkan tindakan aturan untuk permintaan.
   + **Tidak cocok - Perlakukan** permintaan web sebagai tidak cocok dengan pernyataan aturan.
**catatan**  
Perilaku fallback ini hanya terpicu saat AWS WAF menemukan kesalahan saat mengurai string JSON. 

**Parsing tidak sepenuhnya memvalidasi JSON**  
AWS WAF penguraian tidak sepenuhnya memvalidasi string JSON input, sehingga penguraian dapat berhasil bahkan untuk JSON yang tidak valid.

   Misalnya, AWS WAF mem-parsing JSON yang tidak valid berikut tanpa kesalahan: 
   + Kehilangan koma: `{"key1":"value1""key2":"value2"}`
   + Kehilangan titik dua: `{"key1":"value1","key2""value2"}`
   + Titik dua ekstra: `{"key1"::"value1","key2""value2"}`

   Untuk kasus-kasus seperti ini di mana penguraian berhasil tetapi hasilnya tidak sepenuhnya valid JSON, hasil dari langkah-langkah selanjutnya dalam evaluasi dapat bervariasi. Ekstraksi mungkin kehilangan beberapa elemen, atau evaluasi aturan mungkin memiliki hasil yang tidak terduga. Kami menyarankan Anda memvalidasi JSON yang Anda terima dalam aplikasi Anda dan menangani JSON yang tidak valid sesuai kebutuhan. 

1. **Ekstrak elemen JSON** - AWS WAF mengidentifikasi subset elemen JSON untuk memeriksa sesuai dengan pengaturan Anda: 
   + Pilihan **lingkup pencocokan JSON** menentukan jenis elemen dalam JSON yang AWS WAF harus memeriksa. 

     Anda dapat menentukan **Kunci**, **Nilai**, atau **Semua** untuk kedua kunci dan nilai. 

     **Semua** tidak memerlukan kecocokan untuk ditemukan di kunci dan kecocokan untuk ditemukan dalam nilai. Ini membutuhkan kecocokan untuk ditemukan di kunci atau nilai atau keduanya. Untuk meminta kecocokan dalam kunci dan nilai, gunakan `AND` pernyataan logis untuk menggabungkan dua aturan kecocokan, satu yang memeriksa kunci dan yang lain yang memeriksa nilai. 
   + Pilihan **Konten untuk memeriksa** menentukan bagaimana untuk menyaring elemen diatur ke subset yang Anda ingin AWS WAF memeriksa. 

     Anda harus menentukan salah satu dari berikut ini:
     + **Konten JSON penuh** - Evaluasi semua elemen. 
     + **Hanya elemen yang disertakan - Evaluasi** hanya elemen yang jalurnya cocok dengan kriteria JSON Pointer yang Anda berikan. Jangan gunakan opsi ini untuk menunjukkan *semua* jalur di JSON. Sebagai gantinya, gunakan **konten JSON Penuh**. 

       Untuk informasi tentang sintaks JSON Pointer, lihat dokumentasi Internet Engineering Task Force (IETF) [JavaScript Object Notation](https://tools.ietf.org/html/rfc6901) (JSON) Pointer. 

       Misalnya, di konsol, Anda dapat memberikan yang berikut: 

       ```
       /dogs/0/name
       /dogs/1/name
       ```

       Di API atau CLI, Anda dapat memberikan yang berikut: 

       ```
       "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"]
       ```

   Misalnya, katakan bahwa pengaturan **Konten untuk memeriksa** **hanya elemen yang disertakan**, dan pengaturan elemen yang disertakan adalah`/a/b`. 

   Untuk contoh berikut badan JSON: 

   ```
   { 
     "a":{
       "c":"d",
       "b":{
         "e":{
           "f":"g"
         }
       }
     }
   }
   ```

   Set elemen yang AWS WAF akan memeriksa untuk setiap pengaturan **lingkup kecocokan JSON** tercantum di bawah ini. Perhatikan bahwa kunci`b`, yang merupakan bagian dari jalur elemen yang disertakan, tidak dievaluasi.
   + **Semua**:`e`, `f,` dan`g`.
   + **Kunci**: `e` dan`f`.
   + **Nilai**:`g`.

1. **Periksa set elemen JSON** - AWS WAF menerapkan transformasi teks apa pun yang telah Anda tentukan ke elemen JSON yang diekstraksi dan kemudian mencocokkan elemen yang dihasilkan yang ditetapkan dengan kriteria pencocokan pernyataan aturan. Ini adalah perilaku transformasi dan evaluasi yang sama seperti untuk komponen permintaan web lainnya. Jika salah satu elemen JSON yang diekstraksi cocok, permintaan web cocok untuk aturan tersebut. 

# Menggunakan alamat IP yang diteruskan di AWS WAF
<a name="waf-rule-statement-forwarded-ip-address"></a>

Bagian ini berlaku untuk pernyataan aturan yang menggunakan alamat IP permintaan web. Secara default, AWS WAF menggunakan alamat IP dari asal permintaan web. Namun, jika permintaan web melewati satu atau lebih proxy atau penyeimbang beban, asal permintaan web akan berisi alamat proxy terakhir, dan bukan alamat asal klien. Dalam hal ini, alamat klien yang berasal biasanya diteruskan di header HTTP lain. Header ini biasanya `X-Forwarded-For` (XFF), tetapi bisa berbeda. 

**Pernyataan aturan yang menggunakan alamat IP**  
Pernyataan aturan yang menggunakan alamat IP adalah sebagai berikut:
+ [Pertandingan set IP](waf-rule-statement-type-ipset-match.md)- Memeriksa alamat IP untuk kecocokan dengan alamat yang ditentukan dalam set IP.
+ [Pertandingan geografis](waf-rule-statement-type-geo-match.md)- Menggunakan alamat IP untuk menentukan negara dan wilayah asal dan mencocokkan negara asal dengan daftar negara.
+ [Pertandingan ASN](waf-rule-statement-type-asn-match.md)- Menggunakan alamat IP untuk menentukan Autonomous System Number (ASN) dan mencocokkan ASN terhadap daftar. ASNs
+ [Menggunakan pernyataan aturan berbasis tarif](waf-rule-statement-type-rate-based.md)- Dapat mengumpulkan permintaan dengan alamat IP mereka untuk memastikan bahwa tidak ada alamat IP individu yang mengirim permintaan pada tingkat yang terlalu tinggi. Anda dapat menggunakan agregasi alamat IP dengan sendirinya atau dalam kombinasi dengan kunci agregasi lainnya. 

Anda dapat menginstruksikan AWS WAF untuk menggunakan alamat IP yang diteruskan untuk pernyataan aturan ini, baik dari `X-Forwarded-For` header atau dari header HTTP lain, alih-alih menggunakan asal permintaan web. Untuk detail tentang cara memberikan spesifikasi, lihat panduan untuk setiap jenis pernyataan aturan.

**catatan**  
Jika header tidak ada, AWS WAF evaluasi pernyataan apa pun yang menggunakan header itu sebagai “Tidak cocok.” Jika Anda menggunakan pernyataan NOT dengan hasil “Tidak cocok”, AWS WAF ubah evaluasi menjadi “Cocokkan.” Header yang hilang tidak memicu perilaku fallback - hanya nilai header yang tidak valid yang melakukannya.

**Perilaku mundur**  
Saat Anda menggunakan alamat IP yang diteruskan, Anda menunjukkan status kecocokan AWS WAF untuk ditetapkan ke permintaan web jika permintaan tidak memiliki alamat IP yang valid di posisi yang ditentukan: 
+ **MATCH - Perlakukan** permintaan web sebagai pencocokan pernyataan aturan. AWS WAF menerapkan tindakan aturan untuk permintaan.
+ **NO MATCH** - Perlakukan permintaan web sebagai tidak cocok dengan pernyataan aturan. 

**Alamat IP yang digunakan dalam Kontrol AWS WAF Bot**  
Grup aturan terkelola Bot Control memverifikasi bot menggunakan alamat IP dari. AWS WAF Jika Anda menggunakan Kontrol Bot dan Anda telah memverifikasi bot yang merutekan melalui proxy atau penyeimbang beban, Anda harus secara eksplisit mengizinkannya menggunakan aturan khusus. Misalnya, Anda dapat mengonfigurasi aturan pencocokan set IP kustom yang menggunakan alamat IP yang diteruskan untuk mendeteksi dan mengizinkan bot terverifikasi Anda. Anda dapat menggunakan aturan untuk menyesuaikan manajemen bot Anda dalam beberapa cara. Untuk informasi dan contoh, lihat [AWS WAF Kontrol Bot](waf-bot-control.md). 

**Pertimbangan umum untuk menggunakan alamat IP yang diteruskan**  
Sebelum Anda menggunakan alamat IP yang diteruskan, perhatikan peringatan umum berikut: 
+ Header dapat dimodifikasi oleh proxy di sepanjang jalan, dan proxy mungkin menangani header dengan cara yang berbeda. 
+ Penyerang mungkin mengubah isi header dalam upaya untuk melewati AWS WAF inspeksi. 
+ Alamat IP di dalam header bisa cacat atau tidak valid.
+ Header yang Anda tentukan mungkin tidak ada sama sekali dalam permintaan.

**Pertimbangan untuk menggunakan alamat IP yang diteruskan dengan AWS WAF**  
Daftar berikut menjelaskan persyaratan dan peringatan untuk menggunakan alamat IP yang diteruskan di: AWS WAF
+ Untuk aturan tunggal apa pun, Anda dapat menentukan satu header untuk alamat IP yang diteruskan. Spesifikasi header tidak peka huruf besar/kecil.
+ Untuk pernyataan aturan berbasis kecepatan, setiap pernyataan pelingkupan bersarang tidak mewarisi konfigurasi IP yang diteruskan. Tentukan konfigurasi untuk setiap pernyataan yang menggunakan alamat IP yang diteruskan. 
+ Untuk aturan geo match, ASN match, dan rate-based, AWS WAF gunakan alamat pertama di header. Misalnya, jika header berisi `10.1.1.1, 127.0.0.0, 10.10.10.10` AWS WAF kegunaan `10.1.1.1`
+ Untuk kecocokan set IP, Anda menunjukkan apakah akan cocok dengan alamat pertama, terakhir, atau alamat apa pun di header. Jika Anda menentukan, AWS WAF periksa semua alamat di header untuk kecocokan, hingga 10 alamat. Jika header berisi lebih dari 10 alamat, AWS WAF periksa 10 terakhir. 
+ Header yang berisi beberapa alamat harus menggunakan pemisah koma di antara alamat. Jika permintaan menggunakan pemisah selain koma, AWS WAF anggap alamat IP di header salah bentuk.
+ Jika alamat IP di dalam header cacat atau tidak valid, AWS WAF menetapkan permintaan web sebagai cocok dengan aturan atau tidak cocok, sesuai dengan perilaku fallback yang Anda tentukan dalam konfigurasi IP yang diteruskan.
+ Jika header yang Anda tentukan tidak ada dalam permintaan, AWS WAF tidak menerapkan aturan pada permintaan sama sekali. Ini AWS WAF berarti itu tidak menerapkan tindakan aturan dan tidak menerapkan perilaku fallback.
+ Pernyataan aturan yang menggunakan header IP yang diteruskan untuk alamat IP tidak akan menggunakan alamat IP yang dilaporkan oleh asal permintaan web.

**Praktik terbaik untuk menggunakan alamat IP yang diteruskan dengan AWS WAF**  
Saat Anda menggunakan alamat IP yang diteruskan, gunakan praktik terbaik berikut: 
+ Pertimbangkan dengan cermat semua kemungkinan status header permintaan Anda sebelum mengaktifkan konfigurasi IP yang diteruskan. Anda mungkin perlu menggunakan lebih dari satu aturan untuk mendapatkan perilaku yang Anda inginkan.
+ Untuk memeriksa beberapa header IP yang diteruskan atau untuk memeriksa asal permintaan web dan header IP yang diteruskan, gunakan satu aturan untuk setiap sumber alamat IP. 
+ Untuk memblokir permintaan web yang memiliki header tidak valid, setel tindakan aturan untuk memblokir dan mengatur perilaku fallback untuk konfigurasi IP yang diteruskan agar cocok. 

**Contoh JSON untuk alamat IP yang diteruskan**  
Pernyataan geo match berikut hanya cocok jika `X-Forwarded-For` header berisi IP yang negara asalnya adalah`US`: 

```
{
  "Name": "XFFTestGeo",
  "Priority": 0,
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "XFFTestGeo"
  },
  "Statement": {
    "GeoMatchStatement": {
      "CountryCodes": [
        "US"
      ],
      "ForwardedIPConfig": {
        "HeaderName": "x-forwarded-for",
        "FallbackBehavior": "MATCH"
      }
    }
  }
}
```

Aturan berbasis laju berikut mengumpulkan permintaan berdasarkan IP pertama di header. `X-Forwarded-For` Aturan hanya menghitung permintaan yang cocok dengan pernyataan kecocokan geografis bersarang, dan hanya memblokir permintaan yang cocok dengan pernyataan kecocokan geografis. Pernyataan geo match bersarang juga menggunakan `X-Forwarded-For` header untuk menentukan apakah alamat IP menunjukkan negara asal. `US` Jika ya, atau jika header ada tetapi salah bentuk, pernyataan geo match mengembalikan kecocokan. 

```
{
  "Name": "XFFTestRateGeo",
  "Priority": 0,
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "XFFTestRateGeo"
  },
  "Statement": {
    "RateBasedStatement": {
      "Limit": "100",
      "AggregateKeyType": "FORWARDED_IP",
      "ScopeDownStatement": {
        "GeoMatchStatement": {
          "CountryCodes": [
            "US"
          ],
          "ForwardedIPConfig": {
            "HeaderName": "x-forwarded-for",
            "FallbackBehavior": "MATCH"
          }
        }
      },
      "ForwardedIPConfig": {
        "HeaderName": "x-forwarded-for",
        "FallbackBehavior": "MATCH"
      }
    }
  }
}
```

# Memeriksa header semu HTTP/2 di AWS WAF
<a name="waf-rule-statement-request-components-for-http2-pseudo-headers"></a>

Bagian ini menjelaskan bagaimana Anda dapat menggunakan AWS WAF untuk memeriksa HTTP/2 pseudo header.

 AWS Sumber daya yang dilindungi yang mendukung lalu lintas HTTP/2 tidak meneruskan header semu HTTP/2 AWS WAF untuk diperiksa, tetapi mereka menyediakan konten header semu dalam komponen permintaan web yang memeriksa. AWS WAF 

Anda dapat menggunakan AWS WAF untuk memeriksa hanya header semu yang tercantum dalam tabel berikut. 


**Konten header semu HTTP/2 dipetakan ke komponen permintaan web**  

| HTTP/2 header semu | Komponen permintaan web untuk diperiksa | Dokumentasi | 
| --- | --- | --- | 
|  `:method`  |  Metode HTTP   |  [Metode HTTP](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-http-method)  | 
|  `:authority`  |  Header `Host`   |  [Header tunggal](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-single-header)  [Semua header](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-headers)  | 
|  `:path`Jalur URI  | Jalur URI  | [Jalur URI](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-uri-path) | 
|  `:path`kueri  |  String kueri  |  [String kueri](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-query-string) [Parameter kueri tunggal](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-single-query-param) [Semua parameter kueri](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-all-query-params)  | 

# Menggunakan transformasi teks di AWS WAF
<a name="waf-rule-statement-transformation"></a>

Bagian ini menjelaskan cara menyediakan transformasi AWS WAF untuk diterapkan sebelum memeriksa permintaan.

Dalam pernyataan yang mencari pola atau menetapkan batasan, Anda dapat memberikan transformasi AWS WAF untuk diterapkan sebelum memeriksa permintaan. Transformasi memformat ulang permintaan web untuk menghilangkan beberapa format yang tidak biasa yang digunakan penyerang dalam upaya untuk mem-bypass. AWS WAF

Saat Anda menggunakan ini dengan pemilihan komponen permintaan badan JSON, AWS WAF terapkan transformasi Anda setelah mengurai dan mengekstrak elemen untuk diperiksa dari JSON. Untuk informasi selengkapnya, lihat [Tubuh JSON](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-json-body).

Jika Anda memberikan lebih dari satu transformasi, Anda juga mengatur urutan AWS WAF untuk menerapkannya. 

**WCUs**- Setiap transformasi teks adalah 10WCUs.

Dokumentasi AWS WAF konsol dan API juga memberikan panduan untuk pengaturan ini di lokasi berikut: 
+ **Pembuat aturan** di konsol — **Transformasi teks**. Opsi ini tersedia saat Anda menggunakan komponen permintaan. 
+ **Isi pernyataan API** - `TextTransformations`Opsi untuk transformasi teks

Setiap daftar transformasi menunjukkan spesifikasi konsol dan API diikuti oleh deskripsi.

Base64 decode – `BASE64_DECODE`  
AWS WAF menerjemahkan string yang dikodekan Base64.

Base64 decode extension – `BASE64_DECODE_EXT`  
AWS WAF mendekode string yang dikodekan Base64, tetapi menggunakan implementasi pemaaf yang mengabaikan karakter yang tidak valid. 

Command line – `CMD_LINE`  
Opsi ini mengurangi situasi di mana penyerang mungkin menyuntikkan perintah baris perintah sistem operasi dan menggunakan format yang tidak biasa untuk menyamarkan beberapa atau semua perintah.   
Gunakan opsi ini untuk melakukan transformasi berikut:  
+ Hapus karakter berikut: `\ " ' ^`
+ Hapus spasi sebelum karakter berikut: `/ (`
+ Ganti karakter berikut dengan spasi: `, ;`
+ Ganti spasi ganda dengan satu spasi
+ Ubah huruf besar,, ke huruf kecil`A-Z`, `a-z`

Compress whitespace – `COMPRESS_WHITE_SPACE`  
AWS WAF kompres spasi putih dengan mengganti beberapa spasi dengan satu spasi dan mengganti karakter berikut dengan karakter spasi (ASCII 32):  
+ Formfeed (ASCII 12)
+ Tab (ASCII 9)
+ Baris baru (ASCII 10)
+ Pengembalian kereta (ASCII 13)
+ Tab vertikal (ASCII 11)
+ Ruang tidak pecah (ASCII 160)

CSS decode – `CSS_DECODE`  
AWS WAF menerjemahkan karakter yang dikodekan menggunakan aturan escape CSS 2.x. `syndata.html#characters` Fungsi ini menggunakan hingga dua byte dalam proses pendekodean, sehingga dapat membantu mengungkap karakter ASCII yang dikodekan menggunakan pengodean CSS yang biasanya tidak dikodekan. Ini juga berguna dalam melawan penghindaran, yang merupakan kombinasi dari garis miring terbalik dan karakter non-heksadesimal. Misalnya, `ja\vascript` untuk `javascript`.

Escape sequences decode – `ESCAPE_SEQ_DECODE`  
AWS WAF menerjemahkan urutan escape ANSI C berikut:`\a`,,,,`\b`,`\f`,`\n`,`\r`, `\t` `\v` `\\``\?`, `\xHH` (heksadesimal) `\'``\"`, (oktal). `\0OOO` Pengodean yang tidak valid tetap dalam output.

Hex decode – `HEX_DECODE`  
AWS WAF menerjemahkan string karakter heksadesimal menjadi biner.

HTML entity decode – `HTML_ENTITY_DECODE`  
AWS WAF menggantikan karakter yang diwakili dalam format heksadesimal `&#xhhhh;` atau format desimal dengan karakter yang sesuai. `&#nnnn;`  
AWS WAF menggantikan karakter berkode HTML berikut dengan karakter yang tidak dikodekan. Daftar ini menggunakan pengkodean HTML huruf kecil, tetapi penanganannya tidak peka huruf besar/kecil, misalnya `&QuOt;` dan `&quot;` diperlakukan sama.       
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/waf/latest/developerguide/waf-rule-statement-transformation.html)

JS decode – `JS_DECODE`  
AWS WAF menerjemahkan urutan JavaScript pelarian. Jika `\uHHHH` kode berada dalam rentang kode ASCII lebar penuh`FF01-FF5E`, maka byte yang lebih tinggi digunakan untuk mendeteksi dan menyesuaikan byte yang lebih rendah. Jika tidak, hanya byte yang lebih rendah yang digunakan dan byte yang lebih tinggi dinolkan, yang menyebabkan kemungkinan hilangnya informasi.

Lowercase – `LOWERCASE`  
AWS WAF mengkonversi huruf besar (A-Z) ke huruf kecil (a-z).

MD5 – `MD5`  
AWS WAF menghitung MD5 hash dari data dalam input. Hash dihitung dalam bentuk biner mentah.

None – `NONE`  
AWS WAF memeriksa permintaan web seperti yang diterima, tanpa transformasi teks apa pun. 

Normalize path – `NORMALIZE_PATH`  
AWS WAF menormalkan string input dengan menghapus beberapa garis miring, referensi mandiri direktori, dan referensi balik direktori yang tidak ada di awal input.

Normalize path Windows – `NORMALIZE_PATH_WIN`  
AWS WAF mengubah karakter garis miring terbalik menjadi garis miring maju dan kemudian memproses string yang dihasilkan menggunakan transformasi. `NORMALIZE_PATH`

Remove nulls – `REMOVE_NULLS`  
AWS WAF menghapus semua `NULL` byte dari input. 

Replace comments – `REPLACE_COMMENTS`  
AWS WAF menggantikan setiap kemunculan komentar gaya-C (/\$1... \$1/) dengan satu spasi. Itu tidak memampatkan beberapa kejadian berturut-turut. Ini menggantikan komentar yang tidak dihentikan dengan spasi (ASCII 0x20). Itu tidak mengubah penghentian komentar secara mandiri (\$1/).

Replace nulls – `REPLACE_NULLS`  
AWS WAF menggantikan setiap `NULL` byte dalam input dengan karakter spasi (ASCII 0x20).

SQL hex decode – `SQL_HEX_DECODE`  
AWS WAF menerjemahkan data hex SQL. Misalnya, AWS WAF menerjemahkan (`0x414243`) ke (`ABC`).

URL decode – `URL_DECODE`  
AWS WAF menerjemahkan nilai yang dikodekan URL.

URL decode Unicode – `URL_DECODE_UNI`  
Seperti`URL_DECODE`, tetapi dengan dukungan untuk pengkodean khusus Microsoft`%u`. Jika kode berada dalam rentang kode `FF01-FF5E` ASCII lebar penuh, byte yang lebih tinggi digunakan untuk mendeteksi dan menyesuaikan byte yang lebih rendah. Jika tidak, hanya byte yang lebih rendah digunakan dan byte yang lebih tinggi dinolkan.

UTF8 to Unicode – `UTF8_TO_UNICODE`  
AWS WAF mengkonversi semua urutan karakter UTF-8 ke Unicode. Ini membantu menormalkan input dan meminimalkan positif palsu dan negatif palsu untuk bahasa non-Inggris.