Sdílet prostřednictvím


Omezení velikosti požadavků firewallu webových aplikací a souborů

Firewall webových aplikací umožňuje konfigurovat limity velikosti požadavků v rámci dolní a horní hranice. Firewally webových aplikací služby Application Gateway se spuštěnou sadou základních pravidel 3.2 nebo novější mají více ovládacích prvků pro požadavky a velikost nahrávání souborů, včetně možnosti zakázat maximální vynucování velikosti pro požadavky nebo nahrání souborů.

Důležité

Právě nasazujeme novou funkci pro firewally webových aplikací služby Application Gateway verze 2 se spuštěnou základní sadou pravidel 3.2 nebo novější, která umožňuje větší kontrolu nad velikostí těla požadavku, velikostí nahrání souboru a kontrolou textu požadavku. Pokud používáte firewall webových aplikací služby Application Gateway v2 se sadou základních pravidel 3.2 nebo novější a všimnete si, že se žádosti o odmítnutí (nebo se neodmítnou) týkající se limitu velikosti, projděte si kroky pro řešení potíží v dolní části této stránky.

Omezení

Pole velikosti textu požadavku a limit velikosti nahrání souboru jsou obě konfigurovatelná v rámci Web Application Firewall. Maximální velikost pole velikosti textu požadavku se uvádí v kilobajtech a určuje celkový limit velikosti požadavku s výjimkou nahrávaných souborů. Pole limitu pro nahrání souboru je zadané v megabajtech a řídí maximální povolenou velikost nahrávání souborů. Omezení velikosti požadavků a limit velikosti souboru najdete v tématu Omezení služby Application Gateway.

U firewallů webových aplikací služby Application Gateway verze 2 se systémem Core Rule Set 3.2 nebo novějším je možné zakázat vynucení maximální velikosti těla požadavku a maximální vynucování velikosti souboru a firewall webových aplikací už žádost nebo nahrání souboru neodmítá kvůli příliš velké velikosti. Pokud je vynucení maximální velikosti těla požadavku a vynucení maximální velikosti souboru vynucování velikosti souboru zakázané v rámci firewallu webových aplikací, limity služby Application Gateway určují maximální povolenou velikost. Další informace najdete v tématu Omezení služby Application Gateway.

Pro nahrání souborů se považují pouze požadavky s více částmi nebo daty formulářů. Aby se obsah považoval za nahrání souboru, musí být součástí vícedílného formuláře s hlavičkou názvu souboru . Pro všechny ostatní typy obsahu platí limit velikosti textu požadavku.

Poznámka:

Pokud používáte sadu základních pravidel 3.2 nebo novější a máte vlastní pravidlo s vysokou prioritou, které provádí akci na základě obsahu hlaviček, souborů cookie nebo identifikátoru URI požadavku, bude mít přednost před maximální velikostí požadavku nebo maximální velikostí souboru, omezeními. Tato optimalizace umožňuje službě Firewall webových aplikací spouštět vlastní pravidla s vysokou prioritou, která nevyžadují první čtení celého požadavku.

Příklad: Pokud máte vlastní pravidlo s prioritou 0 (nejvyšší prioritou), které povoluje požadavek s hlavičkou xyz, i když je velikost požadavku větší než limit maximální velikosti požadavku, bude povolená před vynucením maximálního limitu velikosti.

Kontrola subjektu žádosti

Firewall webových aplikací nabízí nastavení konfigurace pro povolení nebo zakázání kontroly těla požadavku. Ve výchozím nastavení je povolená kontrola těla požadavku. Pokud je kontrola textu požadavku zakázaná, firewall webových aplikací nevyhodnocuje obsah textu zprávy HTTP. V takových případech firewall webových aplikací nadále vynucuje pravidla firewallu webových aplikací pro hlavičky, soubory cookie a identifikátor URI. Ve firewallech webových aplikací se spuštěnou základní sadou pravidel 3.1 (nebo nižší), pokud je kontrola textu požadavku vypnutá, pole maximální velikosti textu požadavku není použitelné a nejde ho nastavit.

U firewallů webových aplikací zásad se základní sadou pravidel 3.2 (nebo novější) je možné povolit nebo zakázat kontrolu těla požadavku nezávisle na vynucení velikosti požadavku a omezení velikosti souboru. Kromě toho můžou brány firewall webových aplikací zásad se spuštěnou sadou základních pravidel 3.2 (nebo novější) nastavit maximální limit kontroly těla požadavku nezávisle na maximální velikosti těla požadavku. Maximální limit kontroly těla požadavku říká firewallu webových aplikací, jak hluboko do požadavku by měl kontrolovat a používat pravidla; Nastavení nižší hodnoty pro toto pole může zlepšit výkon firewallu webových aplikací, ale může umožnit, aby nespektěný škodlivý obsah prošel bránou firewall webových aplikací.

U starších firewallů webových aplikací se spuštěnou základní sadou pravidel 3.1 (nebo nižší) umožňuje vypnutí kontroly textu požadavku, aby se zprávy větší než 128 kB odesílaly do firewallu webových aplikací, ale tělo zprávy se nekontroluje kvůli ohrožením zabezpečení. Pro brány firewall webových aplikací zásad se systémem Core Rule Set 3.2 (nebo novějším) můžete dosáhnout stejného výsledku zakázáním maximálního limitu textu požadavku.

Když firewall webových aplikací obdrží požadavek, který je nad limitem velikosti, chování závisí na režimu firewallu webových aplikací a verzi sady spravovaných pravidel, kterou používáte.

  • Pokud jsou zásady firewallu webových aplikací v režimu prevence, protokoly firewallu webových aplikací a blokují požadavky a nahrávání souborů, které jsou nad limity velikosti.
  • Pokud je zásada firewallu webových aplikací v režimu detekce, firewall webových aplikací zkontroluje tělo až do zadaného limitu a ignoruje zbytek. Pokud je hlavička Content-Length přítomen a je větší než limit pro nahrání souboru, firewall webových aplikací ignoruje celý text a protokoluje požadavek.

Řešení problému

Pokud jste zákazník brány Firewall webových aplikací služby Application Gateway verze 2 se spuštěnou sadou základních pravidel 3.2 nebo novější a máte problémy s požadavky nebo nahráváním souborů, nesprávně odmítnutými pro maximální velikost nebo pokud se zobrazí požadavky, které se plně neprověřují, možná budete muset ověřit, že jsou všechny hodnoty správně nastavené. Pomocí PowerShellu nebo rozhraní příkazového řádku Azure můžete ověřit, na jakou hodnotu je nastavená, a podle potřeby aktualizovat všechny hodnoty.

Vynucení kontroly těla žádosti

  • PowerShell: "RequestBodyCheck"
  • ROZHRANÍ příkazového řádku: "request_body_check"
  • Určuje, jestli firewall webových aplikací zkontroluje text požadavku a použije spravovaná a vlastní pravidla na provoz textu požadavku podle nastavení zásad firewallu webových aplikací.

Maximální limit kontroly subjektu žádosti (KB)

  • PowerShell: RequestBodyInspectLimitInKB
  • Rozhraní příkazového řádku: "request_body_inspect_limit_in_kb"
  • Určuje, jak hluboko do textu požadavku brána Firewall webových aplikací kontroluje a používá spravovaná nebo vlastní pravidla. Obecně řečeno, měli byste to nastavit na maximální možné nastavení, ale někteří zákazníci ho můžou chtít nastavit na nižší hodnotu, aby se zlepšil výkon.

Vynucení maximálního limitu textu požadavku

  • PowerShell: RequestBodyEnforcement
  • ROZHRANÍ příkazového řádku: "request_body_enforcement"
  • Řízení, jestli firewall webových aplikací vynucuje maximální limit velikosti u subjektů požadavků; pokud je vypnuto, neodmítá žádné žádosti o příliš velké.

Maximální velikost textu požadavku (kB)

  • PowerShell: MaxRequestBodySizeInKB
  • ROZHRANÍ příkazového řádku: "max_request_body_size_in_kb"
  • Určuje, jak velké tělo požadavku může být před tím, než ji firewall webových aplikací odmítne za překročení nastavení maximální velikosti.

Vynucení maximálního limitu nahrávání souborů

  • PowerShell: FileUploadEnforcement
  • ROZHRANÍ příkazového řádku: "file_upload_enforcement"
  • Určuje, jestli firewall webových aplikací vynucuje maximální limit velikosti při nahrávání souborů; pokud je vypnuto, neodmítá žádné nahrávání souborů, aby byly příliš velké.

Maximální velikost nahrávání souborů (MB)

  • PowerShell: FileUploadLimitInMB
  • ROZHRANÍ příkazového řádku: file_upload_limit_in_mb
  • Určuje, jak velký může být nahrání souboru před tím, než ho firewall webových aplikací odmítne za překročení nastavení maximální velikosti.

Poznámka:

"Kontrola textu požadavku" dříve kontrolovala, jestli se tělo požadavku kontrolovalo a použilo se pravidla, a také v případě vynucení maximálního limitu velikosti u subjektů žádosti. Nyní je zpracována dvěma samostatnými poli, která je možné zapnout nebo vypnout nezávisle.

PowerShell

Pomocí následujících příkazů PowerShellu můžete vrátit zásady Azure a podívat se na aktuální nastavení.

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

Tyto příkazy můžete použít k aktualizaci nastavení zásad na požadované hodnoty pro kontrolní limit a maximální omezení velikosti souvisejících polí. V následujícím příkladu můžete prohodit requestBodyEnforcement pro jednu z dalších hodnot, které chcete aktualizovat.

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

Rozhraní příkazového řádku

Azure CLI můžete použít k vrácení aktuálních hodnot těchto polí z nastavení zásad Azure a aktualizaci polí na požadované hodnoty pomocí těchto příkazů.

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

Výstup:

FileUploadEnforcement    FileUploadLimitInMb    MaxRequestBodySizeInKb    Mode       RequestBodyCheck    RequestBodyEnforcement    RequestBodyInspectLimitInKB    State
-----------------------  ---------------------  ------------------------  ---------  ------------------  ------------------------  -----------------------------  -------
True                     100                   128                      Detection  True                True                      128                           Enabled

Další kroky