Брандмауэр веб-приложений ограничения размера запроса и отправки файла

Брандмауэр веб-приложений позволяет настроить ограничения размера запроса в пределах нижней и верхней границы. Шлюз приложений Брандмауэр веб-приложений, на которых запущен набор правил Core 3.2 или более поздней версии, имеют больше элементов управления размером запросов и файлов, включая возможность отключить принудительное применение максимального размера для запросов и (или) отправки файлов.

Внимание

Мы в процессе развертывания новой функции для Шлюз приложений версии 2 Брандмауэр веб-приложений с набором правил core Set 3.2 или более поздней версии, что позволяет более подробно контролировать размер текста запроса, размер отправки файлов и проверку текста запроса. Если вы используете Шлюз приложений версии 2 Брандмауэр веб-приложений с набором основных правил 3.2 или более поздней версии, и вы заметите, что запросы на отклонение (или не отклоняются) для ограничения размера см. в шагах по устранению неполадок в нижней части этой страницы.

Ограничения

Поле размера текста запроса и ограничение размера отправки файла настраиваются в Брандмауэр веб-приложений. Поле "Максимальный размер текста запроса" предназначено для значений, выражаемых в килобайтах. Оно определяет общий предельный размер запроса без учета отправляемых файлов. Поле ограничения отправки файла указывается в мегабайтах, и оно управляет максимальным допустимым размером отправки файлов. Ограничения размера запроса и ограничения размера отправки файлов см. в Шлюз приложений ограничениях.

Для Шлюз приложений версии 2 Брандмауэр веб-приложений, на которых запущен набор правил Core Set 3.2 или более поздней версии, максимальный размер текста запроса и максимальное ограничение размера отправки файлов можно отключить, и Брандмауэр веб-приложений больше не отклоняет запрос или отправку файлов, чтобы быть слишком большим. Если ограничение максимального размера текста запроса и ограничение максимального размера файла отключены в пределах Брандмауэр веб-приложений, ограничения Шлюз приложений определяют допустимый максимальный размер. Дополнительные сведения см. в Шлюз приложений ограничениях.

Передачей файлов считаются только запросы с типом содержимого multipart/form-data. Чтобы содержимое считалось передачей файла, оно должно быть частью многокомпонентной формы с заголовком имени файла. Для всех других типов контента применяется ограничение размера текста запроса.

Примечание.

Если вы используете набор правил Core 3.2 или более поздней версии, и у вас есть настраиваемое правило с высоким приоритетом, которое принимает меры на основе содержимого заголовков запроса, файлов cookie или URI, это будет иметь приоритет над любым максимальным размером запроса или максимальным размером отправки файлов, ограничениями. Эта оптимизация позволит Брандмауэр веб-приложений запускать пользовательские правила с высоким приоритетом, которые не требуют чтения полного запроса.

Пример. Если у вас есть настраиваемое правило с приоритетом 0 (наивысший приоритет), чтобы разрешить запрос с xyz заголовком, даже если размер запроса превышает максимальный размер запроса, он будет разрешен до применения максимального ограничения размера.

Проверка текста запроса

Брандмауэр веб-приложений предлагает параметр конфигурации для включения или отключения проверки текста запроса. По умолчанию проверка включена. Если проверка текста запроса отключена, Брандмауэр веб-приложений не оценивает содержимое текста HTTP-сообщения. В таких случаях Брандмауэр веб-приложений продолжает применять правила Брандмауэр веб-приложений к заголовкам, файлам cookie и URI. Если проверка текста запроса отключена, в Брандмауэр веб-приложений с набором правил Core Set 3.1 (или более поздней), поле максимального размера текста запроса не применимо и не может быть задано.

Для политик Брандмауэр веб-приложений, работающих с набором правил Core 3.2 (или более поздней версии), проверка тела запроса может быть включена или отключена независимо от ограничений размера текста запроса и размера отправки файлов. Кроме того, политики Брандмауэр веб-приложений, на которых выполняется набор правил Core Set 3.2 (или более поздней версии), можно задать максимальное ограничение проверки текста запроса независимо от максимального размера текста запроса. Максимальное ограничение проверки текста запроса указывает Брандмауэр веб-приложений, насколько глубоко в запросе он должен проверять и применять правила; задание меньшего значения для этого поля может улучшить Брандмауэр веб-приложений производительность, но может позволить неинспектировать вредоносное содержимое для передачи через ваше Брандмауэр веб-приложений.

Для старых Брандмауэр веб-приложений с набором правил Core Set 3.1 (или более поздней), отключение проверки текста запроса позволяет отправлять сообщения размером более 128 КБ отправляться в Брандмауэр веб-приложений, но текст сообщения не проверяется на наличие уязвимостей. Для политик Брандмауэр веб-приложений с набором правил Core Set 3.2 (или более поздней версии) можно добиться того же результата, отключив максимальное ограничение текста запроса.

Когда Брандмауэр веб-приложений получает запрос, который превышает ограничение размера, поведение зависит от режима Брандмауэр веб-приложений и версии используемого управляемого набора правил.

  • Если политика Брандмауэр веб-приложений находится в режиме предотвращения, Брандмауэр веб-приложений журналы и блокируют запросы и отправки файлов, которые находятся в пределах размера.
  • Если политика Брандмауэр веб-приложений находится в режиме обнаружения, Брандмауэр веб-приложений проверяет тело до указанного предела и игнорирует остальные. Content-Length Если заголовок присутствует и больше ограничения отправки файла, Брандмауэр веб-приложений игнорирует весь текст и записывает запрос.

Устранение неполадок

Если вы являетесь Шлюз приложений версии 2 Брандмауэр веб-приложений клиента, работающего под управлением основного набора правил 3.2 или более поздней версии, и у вас возникли проблемы с запросами или отправкой файлов, отклонение неправильно для максимального размера или если запросы не проверяются полностью, может потребоваться убедиться, что все значения заданы правильно. С помощью PowerShell или интерфейса командной строки Azure можно проверить, какое значение задано, и обновить все значения по мере необходимости.

Принудительное проверка текста запроса

  • PS: "RequestBodyCheck"
  • CLI: "request_body_проверка"
  • Определяет, будет ли Брандмауэр веб-приложений проверять текст запроса и применять управляемые и настраиваемые правила к трафику текста запроса на параметры политики Брандмауэр веб-приложений.

Максимальное ограничение проверки текста запроса (КБ)

  • PS: RequestBodyInspectLimitIn КБ
  • CLI: "request_body_inspect_limit_in_kb"
  • Определяет, как глубоко в тексте запроса Брандмауэр веб-приложений будет проверять и применять управляемые или пользовательские правила. Как правило, вы хотите задать это максимально возможное значение, но некоторые клиенты могут заставить его на более низкое значение, чтобы повысить производительность.

Принудительное ограничение текста запроса

  • PS: RequestBodyEnforcement
  • CLI: "request_body_enforcement"
  • Контроль того, будет ли ваш Брандмауэр веб-приложений применять максимальное ограничение размера для тел запросов; при отключении он не отклонит какие-либо запросы на слишком большие.

Максимальный размер текста запроса (КБ)

  • PS: "MaxRequestBodySizeIn КБ"
  • CLI: "max_request_body_size_in_kb"
  • Определяет размер текста запроса до того, как Брандмауэр веб-приложений отклоняет его для превышения максимального размера.

Принудительное ограничение на отправку файлов

  • PS: FileUploadEnforcement
  • CLI: "file_upload_enforcement"
  • Управляет тем, что Брандмауэр веб-приложений будет применять максимальное ограничение размера при отправке файлов; при отключении он не отклонит отправку файлов для слишком большого размера.

Максимальный размер отправки файла (МБ)

  • PS: FileUploadLimitIn МБ
  • CLI: file_upload_limit_in_mb
  • Определяет размер отправки файла до того, как Брандмауэр веб-приложений отклоняет его для превышения максимального размера.

Примечание.

"Проверяемый текст запроса" ранее контролировался, если текст запроса был проверен и применены правила, а также если максимальное ограничение размера было применено к телам запросов. Теперь это обрабатывается двумя отдельными полями, которые можно включить или отключить независимо.

PowerShell

Для возврата политики Azure и просмотра текущих параметров можно использовать следующие команды PowerShell.

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

Эти команды можно использовать для обновления параметров политики до требуемых значений для ограничения проверки и ограничения максимального размера, связанных с полями. Вы можете переключить "RequestBodyEnforcement" в приведенном ниже примере для одного из других значений, которые требуется обновить.

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

Интерфейс командной строки

Azure CLI можно использовать для возврата текущих значений этих полей из параметров политики Azure и обновления полей до требуемых значений с помощью этих команд.

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

Выходные данные:

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

Следующие шаги