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 konfigurovatelné v rámci firewallu webových aplikací. Pole maximální velikosti textu požadavku je zadané v kilobajtech a řídí celkový limit velikosti požadavku s výjimkou nahrávání 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 v2 se sadou základních pravidel 3.2 nebo novějších je možné zakázat vynucení maximální velikosti těla požadavku a vynucení maximální velikosti souboru pro nahrání souboru a firewall webových aplikací už žádost nebo nahrávání souborů nebude zamítat, aby byla příliš velká. 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 průchod nespektěného škodlivého obsahu přes 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 v2 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

  • PS: "RequestBodyCheck"
  • ROZHRANÍ příkazového řádku: "request_body_check"
  • Určuje, jestli brána firewall webových aplikací zkontroluje tělo 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)

  • PS: "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í zkontroluje a použije 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

  • PS: "RequestBodyEnforcement"
  • ROZHRANÍ příkazového řádku: "request_body_enforcement"
  • Kontrola, jestli firewall webových aplikací vynutí maximální limit velikosti u subjektů požadavků; když je vypnutý, neodmítne žádné žádosti o příliš velké.

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

  • PS: "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ů

  • PS: "FileUploadEnforcement"
  • ROZHRANÍ příkazového řádku: "file_upload_enforcement"
  • Určuje, jestli firewall webových aplikací vynutí maximální omezení velikosti při nahrávání souborů; když je vypnutý, neodmítne žádné nahrávání souborů, aby byly příliš velké.

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

  • PS: "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 hodnotu 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='2000' policySettings.max_request_body_size_in_kb='2000' policySettings.file_upload_limit_in_mb='3500' --query policySettings -o table

Výstup:

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

Další kroky