Compartilhar via


Limites de tamanho de carregamento de arquivo e solicitação do Firewall do aplicativo Web

O Firewall do aplicativo Web permite a você configurar limites de tamanho de solicitação dentro de limites inferior e superior. Os Firewalls do Aplicativo Web dos Gateways de Aplicativo que executam o Core Rule Set 3.2 ou posterior têm mais controles de tamanho de carregamento de arquivos e solicitações, incluindo a capacidade de desabilitar a imposição máxima de tamanho para solicitações e/ou uploads de arquivo.

Importante

Estamos no processo de implantar um novo recurso para Firewalls de aplicativo Web do Gateway de Aplicativo v2 executando o Core Rule Set 3.2 ou posterior que permite um maior controle do tamanho do corpo da solicitação, do tamanho do upload do arquivo e da inspeção do corpo da solicitação. Se você estiver executando o Firewall do aplicativo Web do Gateway de Aplicativo v2 com o Core Rule Set 3.2 ou posterior e observar solicitações sendo rejeitadas (ou não rejeitadas) para um limite de tamanho, consulte as etapas de solução de problemas na parte inferior desta página.

Limites

O campo tamanho do corpo da solicitação e o limite de tamanho de upload do arquivo são configuráveis dentro do Firewall do aplicativo Web. O campo de tamanho de corpo da solicitação máximo é especificado em quilobytes e controla o limite de tamanho de solicitação geral excluindo qualquer carregamento de arquivo. O campo de limite de carregamento de arquivo é especificado em megabytes e controla o tamanho máximo de carregamento de arquivos permitido. Para obter os limites de tamanho da solicitação e o limite de tamanho de upload de arquivo, consulte os limites do Gateway de Aplicativo.

Quanto aos Firewalls de Aplicativos da Web do Application Gateway v2 que executam o Core Rule Set 3.2 ou mais recente, a aplicação do tamanho máximo do corpo da solicitação e do tamanho máximo do carregamento de arquivo pode ser desativada e o Firewall de Aplicativos da Web não rejeita mais uma solicitação ou carregamento de arquivo por ser muito grande. Quando a imposição máxima do tamanho do corpo da solicitação e a imposição máxima do tamanho do upload de arquivo são desabilitadas dentro do Firewall do aplicativo Web, os limites do Gateway de Aplicativo determinam o tamanho máximo permitido. Consulte Limites de Gateway de Aplicativo para obter mais informações.

Somente solicitações com Tipo de Conteúdo várias partes/dados de formulário são consideradas para uploads de arquivo. Para que o conteúdo seja considerado como um upload de arquivo, ele precisa fazer parte de um formulário de várias partes com um cabeçalho nome de arquivo. Para todos os outros tipos de conteúdo, aplica-se o limite de tamanho do corpo da solicitação.

Observação

Se você estiver executando o Core Rule Set 3.2 ou posterior e tiver uma regra personalizada de alta prioridade que execute uma ação com base no conteúdo dos cabeçalhos, cookies ou URI de uma solicitação, isso terá precedência sobre qualquer tamanho máximo de solicitação ou tamanho máximo de carregamento de arquivo, limites. Essa otimização permite que o Firewall do aplicativo Web execute regras personalizadas de alta prioridade que não exigem a leitura da solicitação completa primeiro.

Exemplo: se você tiver uma regra personalizada com prioridade 0 (a prioridade mais alta) definida para permitir uma solicitação com o cabeçalho xyz, mesmo que o tamanho da solicitação seja maior que o limite máximo de tamanho da solicitação, ela será permitida antes que o limite máximo de tamanho seja imposto

Inspeção do corpo da solicitação

O Firewall do aplicativo Web oferece uma definição de configuração para habilitar ou desabilitar a inspeção do corpo da solicitação. Por padrão, a inspeção de corpo da solicitação está habilitada. Se a inspeção do corpo da solicitação estiver desabilitada, o Firewall do aplicativo Web não avaliará o conteúdo do corpo de uma mensagem HTTP. Nesses casos, o Firewall do aplicativo Web continua a impor regras de Firewall do aplicativo Web em cabeçalhos, cookies e URI. Nos Firewalls de aplicativo Web que executam o Core Rule Set 3.1 (ou inferior), se a inspeção do corpo da solicitação estiver desativada, o campo de tamanho máximo do corpo da solicitação não será aplicável e não poderá ser definido.

Para Firewalls de aplicativo Web de política que executam o Core Rule Set 3.2 (ou mais recente), a inspeção do corpo da solicitação pode ser habilitada/desabilitada independentemente dos limites de tamanho do corpo da solicitação e do tamanho do upload do arquivo. Além disso, os Firewalls de aplicativo Web de política que executam o Core Rule Set 3.2 (ou mais recente) podem definir o limite máximo de inspeção do corpo da solicitação independentemente do tamanho máximo do corpo da solicitação. O limite máximo de inspeção do corpo da solicitação informa ao Firewall do Aplicativo Web a profundidade da solicitação que ele deve inspecionar e aplicar regras; a definição de um valor mais baixo para esse campo pode melhorar o desempenho do Firewall do Aplicativo Web, mas pode permitir que conteúdo mal-intencionado não inspecionado passe pelo Firewall do Aplicativo Web.

Para Firewalls de aplicativo Web mais antigos que executam o Core Rule Set 3.1 (ou inferior), desativar a inspeção do corpo da solicitação permite que mensagens maiores que 128 KB sejam enviadas ao Firewall do aplicativo Web, mas o corpo da mensagem não é inspecionado quanto a vulnerabilidades. Para Firewalls de aplicativo Web de política que executam o Core Rule Set 3.2 (ou mais recente), você pode obter o mesmo resultado desabilitando o limite máximo do corpo da solicitação.

Quando o Firewall do aplicativo Web recebe uma solicitação acima do limite de tamanho, o comportamento depende do modo do Firewall do aplicativo Web e da versão do conjunto de regras gerenciado que você usa.

  • Quando sua política de Firewall do aplicativo Web está no modo de prevenção, o Firewall do aplicativo Web registra e bloqueia solicitações e uploads de arquivo que estão acima dos limites de tamanho.
  • Quando sua política de Firewall do aplicativo Web está no modo de detecção, o Firewall do aplicativo Web inspeciona o corpo até o limite especificado e ignora o restante. Se o cabeçalho Content-Length estiver presente e for maior que o limite de upload de arquivo, o Firewall do aplicativo Web ignorará todo o corpo e registrará a solicitação em logs.

Solução de problemas

Se você for cliente do Firewall do Aplicativo Web do Gateway do Aplicativo v2, e estiver executando o Conjunto de Regras Principais 3.2 ou posterior e tiver problemas com solicitações ou carregamentos de arquivos que sejam rejeitados incorretamente por causa do tamanho máximo, ou se as solicitações não forem totalmente inspecionadas, talvez você precise verificar se todos os valores estão definidos corretamente. Usando o PowerShell ou a Interface de Linha de Comando do Azure, você pode verificar como cada valor está definido e atualizar os valores conforme necessário.

Impor inspeção do corpo da solicitação

  • PowerShell: "RequestBodyCheck"
  • CLI: "request_body_check"
  • Controla se o Firewall do Aplicativo Web inspeciona o corpo da solicitação e aplica regras gerenciadas e personalizadas ao tráfego do corpo da solicitação de acordo com as configurações da política do Firewall do Aplicativo Web.

Limite máximo de inspeção do corpo da solicitação (KB)

  • PowerShell: "RequestBodyInspectLimitInKB"
  • CLI: "request_body_inspect_limit_in_kb"
  • Controla a profundidade do corpo de uma solicitação que o Firewall do Aplicativo Web inspeciona e aplica regras gerenciadas/personalizadas. De um modo geral, você gostaria de definir isso como a configuração máxima possível, mas alguns clientes talvez queiram defini-la como um valor mais baixo para melhorar o desempenho.

Impor o limite máximo do corpo da solicitação

  • PowerShell: "RequestBodyEnforcement"
  • CLI: "request_body_enforcement"
  • Controlar se o Firewall do Aplicativo Web impõe um limite de tamanho máximo aos corpos das solicitações; quando desativado, ele não rejeita nenhuma solicitação por ser muito grande.

Tamanho máximo do corpo da solicitação (KB)

  • PowerShell: "MaxRequestBodySizeInKB"
  • CLI: "max_request_body_size_in_kb"
  • Controla o tamanho do corpo da solicitação antes que o Firewall do aplicativo Web o rejeite por exceder a configuração de tamanho máximo.

Impor limite máximo de upload de arquivo

  • PowerShell: "FileUploadEnforcement"
  • CLI: "file_upload_enforcement"
  • Controla se o Firewall do Aplicativo Web impõe um limite máximo de tamanho para carregamentos de arquivos; quando desativado, ele não rejeita nenhum carregamento de arquivo por ser muito grande.

Tamanho máximo de upload de arquivo (MB)

  • PowerShell: "FileUploadLimitInMB"
  • CLI: file_upload_limit_in_mb
  • Controla o tamanho de um upload de arquivo antes que o Firewall do aplicativo Web o rejeite por exceder a configuração de tamanho máximo.

Observação

"Inspecionar o corpo da solicitação" previamente controlado se o corpo da solicitação foi inspecionado e as regras aplicadas, bem como se um limite de tamanho máximo foi imposto nos corpos da solicitação. Agora, isso é tratado por dois campos separados que podem ser ativados/desativados de forma independente.

PowerShell

Você pode usar os seguintes comandos do PowerShell para retornar sua política do Azure e examinar suas configurações atuais.

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

Você pode usar esses comandos para atualizar as configurações de política para os valores desejados para o limite de inspeção e os campos relacionados à limitação de tamanho máximo. Você pode trocar 'RequestBodyEnforcement' no exemplo abaixo por um dos outros valores que quer atualizar.

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

Interface de linha de comando

Você pode usar a CLI do Azure para retornar os valores atuais desses campos de suas configurações de política do Azure e atualizar os campos para os valores desejados usando esses comandos.

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

Saída:

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

Próximas etapas