Compartir vía


Límites de tamaño de carga de archivos y solicitudes de Web Application Firewall

Web Application Firewall le permite configurar límites de tamaño de solicitudes dentro de un límite inferior y superior. Los firewalls de aplicaciones web de Application Gateway que ejecutan el conjunto de reglas principal 3.2 o posterior tienen más controles de tamaño de carga de archivos y solicitudes, incluida la capacidad de deshabilitar la aplicación del tamaño máximo para las solicitudes o cargas de archivos.

Importante

Estamos en proceso de implementar una nueva característica para firewalls de aplicaciones web de Application Gateway v2 que ejecutan el conjunto de reglas principal 3.2 o posterior que permite un mayor control del tamaño del cuerpo de la solicitud, el tamaño de carga de archivos y la inspección del cuerpo de la solicitud. Si ejecuta un firewall de aplicaciones web de App Gateway v2 con el conjunto de reglas principal 3.2 o posterior, y observa que las solicitudes se rechazan (o no se rechazan) para un límite de tamaño, consulte los pasos de solución de problemas en la parte inferior de esta página.

Límites

El campo de tamaño del cuerpo de la solicitud y el límite de tamaño de carga de archivos se pueden configurar dentro del firewall de aplicaciones web. El campo de tamaño máximo del cuerpo de la solicitud se especifica en kilobytes y controla el límite de tamaño de la solicitud general, excluida cualquier carga de archivo. El campo de límite de carga de archivo se especifica en megabytes y controla el tamaño máximo de carga de archivo permitido. Para conocer los límites de tamaño de solicitud y el límite de tamaño de carga de archivos, consulte Límites de Application Gateway.

En el caso de los firewalls de aplicaciones web de Application Gateway v2 que ejecutan el conjunto de reglas principales 3.2 o posterior, se puede deshabilitar el cumplimiento del tamaño máximo del cuerpo de la solicitud y el cumplimiento del tamaño máximo de carga de archivos y Web Application Firewall ya no rechazará una solicitud o carga de archivos por ser demasiado grande. Cuando el cumplimiento del tamaño máximo del cuerpo de la solicitud y el cumplimiento del tamaño máximo de carga de archivos están deshabilitados dentro del firewall de aplicaciones web, los límites de Application Gateway determinan el tamaño máximo permitido. Para obtener más información, consulte los Límites de Application Gateway.

Solo las solicitudes con tipo de contenido de datos de varias partes o formularios se consideran cargas de archivos. Para que el contenido se considere como carga de archivos, debe formar parte de un formulario de varias partes con un encabezado de nombre de archivo. Para todos los demás tipos de contenido, se aplica el límite de tamaño del cuerpo de la solicitud.

Nota:

Si está ejecutando el conjunto de reglas principal 3.2 o posterior, y tiene una regla personalizada de alta prioridad que toma medidas en función del contenido de los encabezados, cookies o URI de una solicitud, tendrá prioridad sobre cualquier límite de tamaño máximo de solicitud o tamaño máximo de carga de archivos. Esta optimización permite que Web Application Firewall ejecute reglas personalizadas de prioridad alta que no requieren leer primero la solicitud completa.

Ejemplo: si tiene una regla personalizada con prioridad 0 (la prioridad más alta) establecida para permitir una solicitud con el encabezado xyz, aunque el tamaño de la solicitud sea mayor que el límite de tamaño máximo de la solicitud, se permitirá antes de que se aplique el límite de tamaño máximo.

Inspección del cuerpo de la solicitud

Web Application Firewall ofrece una configuración para habilitar o deshabilitar la inspección del cuerpo de la solicitud. De forma predeterminada, la inspección del cuerpo de la solicitud está habilitada. Si se desactiva la inspección del cuerpo de la solicitud, Web Application Firewall no evalúa el contenido del cuerpo de un mensaje HTTP. En tales casos, Web Application Firewall sigue aplicando reglas de Web Application Firewall en encabezados, cookies y URI. En firewalls de aplicaciones web que ejecutan el conjunto de reglas principal 3.1 (o inferior), si la inspección del cuerpo de la solicitud está desactivada, el campo de tamaño máximo del cuerpo de la solicitud no es aplicable y no se puede establecer.

En el caso de firewalls de aplicaciones web de directiva que ejecutan el conjunto de reglas principal 3.2 (o posterior), la inspección del cuerpo de la solicitud se puede habilitar o deshabilitar independientemente de los límites de cumplimiento de tamaño del cuerpo de la solicitud y de tamaño de carga de archivos. Además, los firewalls de aplicaciones web de directiva que ejecutan el conjunto de reglas principal 3.2 (o posterior) pueden establecer el límite máximo de inspección del cuerpo de la solicitud independientemente del tamaño máximo del cuerpo de la solicitud. El límite máximo de inspección del cuerpo de la solicitud indica al cortafuegos de aplicaciones web la profundidad a la que debe inspeccionar una solicitud y aplicar reglas; establecer un valor más bajo para este campo puede mejorar el rendimiento del cortafuegos de aplicaciones web, pero podría permitir que el contenido malicioso no inspeccionado pasara a través de su cortafuegos de aplicaciones web.

En el caso de firewalls de aplicaciones web anteriores que ejecutan el conjunto de reglas principal 3.1 (o inferior), desactivar la inspección del cuerpo de la solicitud permite que los mensajes de más de 128 KB se envíen a Web Application Firewall, pero el cuerpo del mensaje no se inspecciona para detectar vulnerabilidades. Para firewalls de aplicaciones web de directiva que ejecutan el conjunto de reglas principal 3.2 (o posterior), puede lograr el mismo resultado deshabilitando el límite máximo del cuerpo de la solicitud.

Cuando Web Application Firewall recibe una solicitud que supera el límite de tamaño, el comportamiento depende del modo de Web Application Firewall y de la versión del conjunto de reglas administrado que use.

  • Cuando la directiva de Web Application Firewall está en modo de prevención, Web Application Firewall registra y bloquea las solicitudes y las cargas de archivos que superan los límites de tamaño.
  • Cuando la directiva de Web Application Firewall está en modo de detección, Web Application Firewall inspecciona el cuerpo hasta el límite especificado y omite el resto. Si el encabezado Content-Length está presente y su valor supera el límite de carga de archivos, Web Application Firewall ignora todo el cuerpo y registra la solicitud.

Solución de problemas

Si es un cliente de un firewall de aplicaciones web de Application Gateway v2 que ejecuta el conjunto de reglas principal 3.2 o posterior y tiene problemas con las solicitudes o cargas de archivos, se rechaza incorrectamente para el tamaño máximo o si ve que las solicitudes no se inspeccionan completamente, es posible que tenga que comprobar que todos los valores estén configurados correctamente. Con PowerShell o la interfaz de la línea de comandos de Azure, puede comprobar cómo se establece cada valor y actualizar los valores según sea necesario.

Aplicar la inspección del cuerpo de solicitud

  • PowerShell: "RequestBodyCheck"
  • CLI: "request_body_check"
  • Controla si el firewall de aplicaciones web inspecciona el cuerpo de la solicitud y aplica reglas administradas y personalizadas al tráfico del cuerpo de la solicitud según la configuración de la directiva del firewall de aplicaciones web.

Límite máximo de inspección del cuerpo de la solicitud (KB)

  • PowerShell: "RequestBodyInspectLimitInKB"
  • CLI: "request_body_inspect_limit_in_kb"
  • Controla la profundidad del cuerpo de una solicitud que el firewall de aplicaciones web inspecciona y aplica reglas administradas o personalizadas. Por lo general, querrá establecer esto en el máximo valor posible, pero es posible que algunos clientes quieran establecerlo en un valor inferior para mejorar el rendimiento.

Aplicar el límite máximo del cuerpo de la solicitud

  • PowerShell: "RequestBodyEnforcement"
  • CLI: "request_body_enforcement"
  • Controle si su firewall de aplicaciones web aplica un límite de tamaño máximo a los cuerpos de las solicitudes; cuando está desactivado no rechaza ninguna solicitud por ser demasiado grande.

Tamaño máximo del cuerpo de la solicitud (KB)

  • PowerShell: "MaxRequestBodySizeInKB"
  • CLI: "max_request_body_size_in_kb"
  • Controla el tamaño máximo que puede tener un cuerpo de la solicitud antes de que Web Application Firewall lo rechace por superar la configuración de tamaño máximo.

Aplicar el límite máximo de carga de archivos

  • PowerShell: "FileUploadEnforcement"
  • CLI: "file_upload_enforcement"
  • Controla si su firewall de aplicaciones web aplica un límite de tamaño máximo a la carga de archivos; cuando está desactivado no rechaza ninguna carga de archivos por ser demasiado grande.

Tamaño máximo de carga de archivos (MB)

  • PowerShell: "FileUploadLimitInMB"
  • CLI: file_upload_limit_in_mb
  • Controla el tamaño máximo que puede tener una carga de archivos antes de que Web Application Firewall lo rechace por superar la configuración de tamaño máximo.

Nota:

"Inspeccionar el cuerpo de la solicitud" previamente controlado si el cuerpo de la solicitud se inspeccionó y se aplicaron reglas, así como si se aplicaba un límite de tamaño máximo en los cuerpos de solicitud. Ahora esto se controla mediante dos campos independientes que se pueden activar o desactivar de manera independiente.

PowerShell

Puede usar los siguientes comandos de PowerShell para devolver la directiva de Azure y examinar su configuración actual.

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

Puede usar estos comandos para actualizar la configuración de directiva a los valores deseados para los campos relacionados con el límite de inspección y la limitación de tamaño máximo. Puede sustituir 'RequestBodyEnforcement' en el siguiente ejemplo por otro de los valores que quiera actualizar.

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

Interfaz de la línea de comandos

Puede usar la CLI de Azure para devolver los valores actuales de estos campos desde la configuración de directiva de Azure y actualizar los campos a los valores deseados mediante estos 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

Salida:

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

Pasos siguientes