Permintaan Web Application Firewall dan batas ukuran unggahan file

Web Application Firewall memungkinkan Anda mengonfigurasi batas ukuran permintaan dalam batas bawah dan atas. Application Gateways Web Application Firewalls yang menjalankan Set Aturan Inti 3.2 atau yang lebih baru memiliki lebih banyak kontrol ukuran permintaan dan pengunggahan file, termasuk kemampuan untuk menonaktifkan penegakan ukuran maksimum untuk permintaan dan/atau unggahan file.

Penting

Kami sedang dalam proses menyebarkan fitur baru untuk Application Gateway v2 Web Application Firewalls yang menjalankan Core Rule Set 3.2 atau yang lebih baru yang memungkinkan kontrol yang lebih besar dari ukuran isi permintaan Anda, ukuran unggahan file, dan pemeriksaan isi permintaan. Jika Anda menjalankan Application Gateway v2 Web Application Firewall dengan Set Aturan Inti 3.2 atau yang lebih baru, dan Anda melihat permintaan ditolak (atau tidak ditolak) untuk batas ukuran, silakan lihat langkah-langkah pemecahan masalah di bagian bawah halaman ini.

Batas

Bidang ukuran isi permintaan dan batas ukuran pengunggahan file keduanya dapat dikonfigurasi dalam Web Application Firewall. Bidang ukuran isi permintaan maksimum ditentukan dalam kilobyte dan mengontrol batas ukuran permintaan keseluruhan tidak termasuk unggahan file apa pun. Bidang batas pengunggahan file ditentukan dalam megabyte dan mengatur ukuran unggahan file maksimum yang diizinkan. Untuk batas ukuran permintaan dan batas ukuran unggahan file, lihat Batas Application Gateway.

Untuk Application Gateway v2 Web Application Firewall yang menjalankan Core Rule Set 3.2, atau yang lebih baru, penegakan ukuran isi permintaan maksimum dan penegakan ukuran pengunggahan file maks dapat dinonaktifkan dan Web Application Firewall tidak akan lagi menolak permintaan, atau pengunggahan file, karena terlalu besar. Ketika penegakan ukuran isi permintaan maksimum dan penegakan ukuran pengunggahan file maksimum dinonaktifkan dalam Web Application Firewall, batas Application Gateway menentukan ukuran maksimum yang diizinkan. Untuk informasi selengkapnya, lihat Batas Application Gateway.

Hanya permintaan dengan Jenis-Konten multipart/form-data yang akan dipertimbangkan untuk pengunggahan file. Agar konten dianggap sebagai unggahan file, konten harus menjadi bagian dari formulir multibagian dengan header nama file. Untuk semua jenis konten lainnya, batas ukuran isi permintaan berlaku.

Catatan

Jika Anda menjalankan Seperangkat Aturan Inti 3.2 atau yang lebih baru, dan Anda memiliki aturan kustom prioritas tinggi yang mengambil tindakan berdasarkan konten header, cookie, atau URI permintaan, ini akan lebih diutamakan daripada ukuran permintaan maks, atau batas ukuran pengunggahan file maks. Pengoptimalan ini mari kita Web Application Firewall menjalankan aturan kustom prioritas tinggi yang tidak memerlukan pembacaan permintaan lengkap terlebih dahulu.

Contoh: Jika Anda memiliki aturan kustom dengan prioritas 0 (prioritas tertinggi) yang diatur untuk mengizinkan permintaan dengan header xyz, bahkan jika ukuran permintaan lebih besar dari batas ukuran permintaan maksimum Anda, itu akan diizinkan sebelum batas ukuran maksimum diberlakukan

Pemeriksaan isi permintaan

Web Application Firewall menawarkan pengaturan konfigurasi untuk mengaktifkan atau menonaktifkan inspeksi isi permintaan. Secara default, pemeriksaan isi permintaan diaktifkan. Jika pemeriksaan isi permintaan dinonaktifkan, Web Application Firewall tidak mengevaluasi konten isi pesan HTTP. Dalam kasus seperti itu, Web Application Firewall terus memberlakukan aturan Web Application Firewall pada header, cookie, dan URI. Di Web Application Firewall yang menjalankan Core Rule Set 3.1 (atau yang lebih rendah), jika pemeriksaan isi permintaan dimatikan, bidang ukuran isi permintaan maksimum tidak berlaku dan tidak dapat diatur.

Untuk Firewall Aplikasi Web Kebijakan yang menjalankan Seperangkat Aturan Inti 3.2 (atau yang lebih baru), pemeriksaan isi permintaan dapat diaktifkan/dinonaktifkan secara independen dari penegakan ukuran isi permintaan dan batas ukuran pengunggahan file. Selain itu, kebijakan Web Application Firewall yang menjalankan Core Rule Set 3.2 (atau yang lebih baru) dapat mengatur batas pemeriksaan isi permintaan maksimum secara independen dari ukuran isi permintaan maksimum. Batas pemeriksaan isi permintaan maksimum memberi tahu Web Application Firewall seberapa dalam permintaan yang harus diperiksa dan diterapkan aturan; mengatur nilai yang lebih rendah untuk bidang ini dapat meningkatkan performa Web Application Firewall tetapi mungkin memungkinkan konten berbahaya yang tidak terinspektasi melewati Web Application Firewall Anda.

Untuk Web Application Firewall yang lebih lama yang menjalankan Set Aturan Inti 3.1 (atau lebih rendah), menonaktifkan pemeriksaan isi permintaan memungkinkan pesan yang lebih besar dari 128 KB dikirim ke Web Application Firewall, tetapi isi pesan tidak diperiksa kerentanannya. Untuk Policy Web Application Firewall yang menjalankan Core Rule Set 3.2 (atau yang lebih baru), Anda dapat mencapai hasil yang sama dengan menonaktifkan batas isi permintaan maksimum.

Saat Web Application Firewall Anda menerima permintaan yang melebihi batas ukuran, perilaku bergantung pada mode Web Application Firewall Anda dan versi ruleset terkelola yang Anda gunakan.

  • Ketika kebijakan Web Application Firewall Anda dalam mode pencegahan, Web Application Firewall mencatat dan memblokir permintaan dan unggahan file yang melebihi batas ukuran.
  • Ketika kebijakan Web Application Firewall Anda dalam mode deteksi, Web Application Firewall memeriksa isi hingga batas yang ditentukan dan mengabaikan sisanya. Content-Length Jika header ada dan lebih besar dari batas unggahan file, Web Application Firewall mengabaikan seluruh isi dan mencatat permintaan.

Pemecahan Masalah

Jika Anda adalah pelanggan Application Gateway v2 Web Application Firewall yang menjalankan Set Aturan Inti 3.2 atau yang lebih baru dan Anda mengalami masalah dengan permintaan, atau unggahan file, ditolak dengan tidak benar untuk ukuran maksimum, atau jika Anda melihat permintaan tidak diperiksa sepenuhnya, Anda mungkin perlu memverifikasi bahwa semua nilai diatur dengan benar. Menggunakan PowerShell atau Antarmuka Baris Perintah Azure, Anda dapat memverifikasi ke mana setiap nilai diatur, dan memperbarui nilai apa pun sesuai kebutuhan.

Menerapkan inspeksi isi permintaan

  • PS: "RequestBodyCheck"
  • CLI: "request_body_check"
  • Mengontrol apakah Web Application Firewall Anda akan memeriksa isi permintaan dan menerapkan aturan terkelola dan kustom ke lalu lintas isi permintaan sesuai pengaturan kebijakan Web Application Firewall Anda.

Batas pemeriksaan isi permintaan maksimum (KB)

  • PS: "RequestBodyInspectLimitInKB"
  • CLI: "request_body_inspect_limit_in_kb"
  • Mengontrol seberapa dalam isi permintaan, Web Application Firewall akan memeriksa dan menerapkan aturan terkelola/kustom. Secara umum, Anda ingin mengatur ini ke pengaturan maksimum yang mungkin, tetapi beberapa pelanggan mungkin ingin mengaturnya ke nilai yang lebih rendah untuk meningkatkan performa.

Menerapkan batas isi permintaan maksimum

  • PS: "RequestBodyEnforcement"
  • CLI: "request_body_enforcement"
  • Mengontrol apakah Web Application Firewall Anda akan memberlakukan batas ukuran maksimum pada badan permintaan; ketika dimatikan, permintaan tidak akan ditolak karena terlalu besar.

Ukuran isi permintaan maksimum (KB)

  • PS: "MaxRequestBodySizeInkB"
  • CLI: "max_request_body_size_in_kb"
  • Mengontrol seberapa besar isi permintaan sebelum Web Application Firewall menolaknya karena melebihi pengaturan ukuran maksimum.

Menerapkan batas unggahan file maksimum

  • PS: "FileUploadEnforcement"
  • CLI: "file_upload_enforcement"
  • Mengontrol apakah Web Application Firewall Anda akan memberlakukan batas ukuran maksimum pada unggahan file; ketika dimatikan tidak akan menolak unggahan file apa pun karena terlalu besar.

Ukuran unggahan file maksimum (MB)

  • PS: "FileUploadLimitInMB"
  • CLI: file_upload_limit_in_mb
  • Mengontrol seberapa besar unggahan file sebelum Web Application Firewall menolaknya karena melebihi pengaturan ukuran maksimum.

Catatan

"Periksa isi permintaan" sebelumnya dikontrol jika isi permintaan diperiksa dan aturan diterapkan serta jika batas ukuran maksimum diberlakukan pada badan permintaan. Sekarang ini ditangani oleh dua bidang terpisah yang dapat diaktifkan/NONAKTIF secara independen.

PowerShell

Anda dapat menggunakan perintah PowerShell berikut untuk mengembalikan kebijakan Azure Anda dan melihat pengaturannya saat ini.

$plcy = Get-AzApplicationGatewayFirewallPolicy -Name <policy-name> -ResourceGroupName <resourcegroup-name>
$plcy.PolicySettings

Anda dapat menggunakan perintah ini untuk memperbarui pengaturan kebijakan ke nilai yang diinginkan untuk batas inspeksi dan batasan ukuran maksimum bidang terkait. Anda dapat menukar 'RequestBodyEnforcement' dalam contoh di bawah ini untuk salah satu nilai lain yang ingin Anda perbarui.

$plcy = Get-AzApplicationGatewayFirewallPolicy -Name <policy-name> -ResourceGroupName <resourcegroup-name>
$plcy.PolicySettings.RequestBodyEnforcement=false
Set-AzApplicationGatewayFirewallPolicy -InputObject $plcy

Antarmuka Baris Perintah

Anda dapat menggunakan Azure CLI untuk mengembalikan nilai saat ini untuk bidang ini dari pengaturan kebijakan Azure Anda dan memperbarui bidang ke nilai yang diinginkan menggunakan perintah ini.

az network application-gateway waf-policy update --name <WAF Policy name> --resource-group <WAF policy RG> --set policySettings.request_body_inspect_limit_in_kb='2000' policySettings.max_request_body_size_in_kb='2000' policySettings.file_upload_limit_in_mb='3500' --query policySettings -o table

Output:

FileUploadEnforcement    FileUploadLimitInMb    MaxRequestBodySizeInKb    Mode       RequestBodyCheck    RequestBodyEnforcement    RequestBodyInspectLimitInKB    State
-----------------------  ---------------------  ------------------------  ---------  ------------------  ------------------------  -----------------------------  -------
True                     3500                   2000                      Detection  True                True                      2000                           Enabled

Langkah berikutnya