Udostępnij za pośrednictwem


Limity rozmiaru żądania i przekazywania pliku zapory aplikacji internetowej

Zapora aplikacji internetowej umożliwia konfigurowanie limitów rozmiaru żądań w granicach dolnej i górnej. Zapory aplikacji internetowej usługi Application Gateway z zestawem reguł podstawowych w wersji 3.2 lub nowszej mają więcej kontrolek rozmiaru żądań i przekazywania plików, w tym możliwość wyłączenia wymuszania maksymalnego rozmiaru żądań i/lub przekazywania plików.

Ważne

Trwa wdrażanie nowej funkcji dla zapór aplikacji internetowych usługi Application Gateway w wersji 2 z systemem Core Rule Set 3.2 lub nowszym, która umożliwia większą kontrolę nad rozmiarem treści żądania, rozmiarem przekazywania plików i inspekcją treści żądania. Jeśli używasz zapory aplikacji internetowej usługi Application Gateway w wersji 2 z podstawowym zestawem reguł w wersji 3.2 lub nowszej i zauważysz, że żądania są odrzucane (lub nie są odrzucane) dla limitu rozmiaru, zapoznaj się z krokami rozwiązywania problemów w dolnej części tej strony.

Limity

Pole rozmiaru treści żądania i limit rozmiaru przesyłania pliku można skonfigurować w zaporze aplikacji internetowej. Maksymalne pole rozmiaru treści żądania jest określone w kilobajtach i kontroluje ogólny limit rozmiaru żądania z wyłączeniem przekazywania plików. Pole limitu przekazywania plików jest określone w megabajtach i określa maksymalny dozwolony rozmiar przekazywania plików. Aby uzyskać limity rozmiaru żądania i limit rozmiaru przekazywania plików, zobacz Limity usługi Application Gateway.

W przypadku zapór aplikacji internetowych usługi Application Gateway w wersji 2 z systemem Core Rule Set 3.2 lub nowszym wymuszanie maksymalnego rozmiaru treści żądania i wymuszanie maksymalnego rozmiaru przekazywania plików można wyłączyć, a zapora aplikacji internetowej nie odrzuca już żądania lub przekazywania plików, ponieważ jest zbyt duża. Jeśli maksymalne wymuszanie rozmiaru treści żądania i maksymalne wymuszanie rozmiaru przekazywania plików są wyłączone w zaporze aplikacji internetowej, limity usługi Application Gateway określają maksymalny dozwolony rozmiar. Aby uzyskać więcej informacji, zobacz Application Gateway limits (Limity usługi Application Gateway).

Tylko żądania o typie zawartości danych wieloczęściowych/formularzy są brane pod uwagę w przypadku przekazywania plików. Aby zawartość była traktowana jako przekazywanie plików, musi być częścią formularza wieloczęściowego z nagłówkiem nazwy pliku . W przypadku wszystkich innych typów zawartości ma zastosowanie limit rozmiaru treści żądania.

Uwaga

Jeśli używasz podstawowego zestawu reguł 3.2 lub nowszego i masz regułę niestandardową o wysokim priorytcie, która podejmuje działania na podstawie zawartości nagłówków żądania, plików cookie lub identyfikatora URI, będzie to miało pierwszeństwo przed maksymalnym rozmiarem żądania lub maksymalnym rozmiarem przekazywania plików, limitami. Ta optymalizacja umożliwia zaporze aplikacji internetowej uruchamianie reguł niestandardowych o wysokim priorytcie, które nie wymagają uprzedniego odczytania pełnego żądania.

Przykład: jeśli masz regułę niestandardową z priorytetem 0 (najwyższym priorytetem), aby zezwolić na żądanie z nagłówkiem xyz, nawet jeśli rozmiar żądania jest większy niż maksymalny limit rozmiaru żądania, zostanie on dozwolony przed wymuszeniem maksymalnego limitu rozmiaru

Żądanie kontroli jednostki

Zapora aplikacji internetowej oferuje ustawienie konfiguracji umożliwiające włączenie lub wyłączenie inspekcji treści żądania. Domyślnie inspekcja treści żądania jest włączona. Jeśli inspekcja treści żądania jest wyłączona, zapora aplikacji internetowej nie ocenia zawartości treści komunikatu HTTP. W takich przypadkach zapora aplikacji internetowej nadal wymusza reguły zapory aplikacji internetowej w nagłówkach, plikach cookie i identyfikatorze URI. W zaporach aplikacji internetowej z systemem Core Rule Set 3.1 (lub niższym), jeśli inspekcja treści żądania jest wyłączona, maksymalne pole rozmiaru treści żądania nie ma zastosowania i nie można go ustawić.

W przypadku zapór aplikacji sieci Web zasad z systemem Core Rule Set 3.2 (lub nowszym) inspekcja treści żądań może być włączona/wyłączona niezależnie od wymuszania rozmiaru treści żądania i limitów rozmiaru przekazywania plików. Ponadto zapory aplikacji internetowej z systemem Core Rule Set 3.2 (lub nowszym) mogą ustawić maksymalny limit inspekcji treści żądań niezależnie od maksymalnego rozmiaru treści żądania. Maksymalny limit inspekcji treści żądań informuje zaporę aplikacji internetowej o tym, jak głęboko w żądaniu powinna sprawdzać i stosować reguły; Ustawienie niższej wartości dla tego pola może poprawić wydajność zapory aplikacji internetowej, ale może zezwalać na nieprzewidzianą złośliwą zawartość przez zaporę aplikacji internetowej.

W przypadku starszych zapór aplikacji internetowych z systemem Core Rule Set 3.1 (lub niższym) wyłączenie inspekcji treści żądania umożliwia wysyłanie komunikatów większych niż 128 KB do zapory aplikacji internetowej, ale treść komunikatu nie jest sprawdzana pod kątem luk w zabezpieczeniach. W przypadku zapór aplikacji sieci Web zasad z uruchomionym podstawowym zestawem reguł 3.2 (lub nowszym) można osiągnąć ten sam wynik, wyłączając maksymalny limit treści żądania.

Gdy zapora aplikacji internetowej odbiera żądanie, które przekracza limit rozmiaru, zachowanie zależy od trybu zapory aplikacji internetowej i wersji używanego zarządzanego zestawu reguł.

  • Gdy zasady zapory aplikacji internetowej są w trybie zapobiegania, zapora aplikacji internetowej rejestruje i blokuje żądania i przekazywanie plików, które przekracza limity rozmiaru.
  • Gdy zasady zapory aplikacji internetowej są w trybie wykrywania, zapora aplikacji internetowej sprawdza treść do określonego limitu i ignoruje resztę. Content-Length Jeśli nagłówek jest obecny i jest większy niż limit przekazywania plików, zapora aplikacji internetowej ignoruje całą treść i rejestruje żądanie.

Rozwiązywanie problemów

Jeśli jesteś klientem zapory aplikacji internetowej usługi Application Gateway w wersji 2 z ustawionym podstawowym zestawem reguł 3.2 lub nowszym i masz problemy z żądaniami lub przekazywaniem plików, niepoprawnie odrzucone dla maksymalnego rozmiaru lub jeśli żądania nie są w pełni sprawdzane, może być konieczne sprawdzenie, czy wszystkie wartości są ustawione poprawnie. Przy użyciu programu PowerShell lub interfejsu wiersza polecenia platformy Azure możesz sprawdzić, na co jest ustawiona każda wartość, i zaktualizować wszystkie wartości zgodnie z potrzebami.

Wymuszanie inspekcji treści żądań

  • PowerShell: "RequestBodyCheck"
  • Interfejs wiersza polecenia: "request_body_check"
  • Określa, czy zapora aplikacji internetowej sprawdza treść żądania i stosuje reguły zarządzane i niestandardowe do ruchu treści żądania zgodnie z ustawieniami zasad zapory aplikacji internetowej.

Maksymalny limit inspekcji treści żądań (KB)

  • PowerShell: "RequestBodyInspectLimitInKB"
  • Interfejs wiersza polecenia: "request_body_inspect_limit_in_kb"
  • Określa, jak głęboko w treści żądania zapora aplikacji internetowej sprawdza i stosuje reguły zarządzane/niestandardowe. Mówiąc ogólnie, należy ustawić to ustawienie na maksymalne możliwe ustawienie, ale niektórzy klienci mogą chcieć ustawić ją na niższą wartość, aby zwiększyć wydajność.

Wymuszanie maksymalnego limitu treści żądań

  • PowerShell: "RequestBodyEnforcement"
  • Interfejs wiersza polecenia: "request_body_enforcement"
  • Kontroluj, czy zapora aplikacji internetowej wymusza maksymalny limit rozmiaru dla treści żądań; po wyłączeniu nie odrzuca żadnych żądań za zbyt duże.

Maksymalny rozmiar treści żądania (KB)

  • PowerShell: "MaxRequestBodySizeInKB"
  • Interfejs wiersza polecenia: "max_request_body_size_in_kb"
  • Określa, jak duża może być treść żądania, zanim zapora aplikacji internetowej odrzuci ją w celu przekroczenia ustawienia maksymalnego rozmiaru.

Wymuszanie maksymalnego limitu przekazywania plików

  • PowerShell: "FileUploadEnforcement"
  • Interfejs wiersza polecenia: "file_upload_enforcement"
  • Określa, czy zapora aplikacji internetowej wymusza maksymalny limit rozmiaru przekazywania plików; po wyłączeniu nie odrzuca żadnych plików przekazywanych w przypadku zbyt dużego rozmiaru.

Maksymalny rozmiar przekazywania plików (MB)

  • PowerShell: "FileUploadLimitInMB"
  • Interfejs wiersza polecenia: file_upload_limit_in_mb
  • Określa, jak duży może być przekazywanie plików, zanim zapora aplikacji internetowej odrzuci ją w celu przekroczenia ustawienia maksymalnego rozmiaru.

Uwaga

"Sprawdź treść żądania" wcześniej kontrolowane, jeśli treść żądania została sprawdzona i zastosowane reguły, a także jeśli maksymalny limit rozmiaru został wymuszony w organach żądań. Teraz jest to obsługiwane przez dwa oddzielne pola, które można włączyć/wyłączyć niezależnie.

PowerShell

Możesz użyć następujących poleceń programu PowerShell, aby zwrócić zasady platformy Azure i przejrzeć jego bieżące ustawienia.

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

Możesz użyć tych poleceń, aby zaktualizować ustawienia zasad do żądanych wartości dla pól związanych z limitem inspekcji i maksymalnym ograniczeniem rozmiaru. Możesz zamienić element "RequestBodyEnforcement" w poniższym przykładzie na jedną z innych wartości, które chcesz zaktualizować.

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

Interfejs wiersza polecenia

Interfejs wiersza polecenia platformy Azure umożliwia zwrócenie bieżących wartości tych pól z ustawień zasad platformy Azure i zaktualizowanie pól do żądanych wartości przy użyciu tych poleceń.

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

Wyjście:

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

Następne kroki