Partage via


Limites de requête de pare-feu d’applications Web et de taille de chargement de fichier

Le pare-feu d’applications Web vous permet de configurer des limites de taille de requête dans une limite inférieure et supérieure. Les pare-feu d’applications Web Application Gateways exécutant Core Rule Set 3.2 ou version ultérieure disposent de davantage de contrôles sur la taille des requêtes et des chargements de fichiers, notamment la possibilité de désactiver l’application de la taille maximale pour les requêtes et/ou les chargements de fichiers.

Important

Nous déployons une nouvelle fonctionnalité pour les pare-feu d’applications Web Application Gateway v2 exécutant Core Rule Set 3.2 ou version ultérieure, qui permet un meilleur contrôle de la taille du corps de votre requête, de la taille de chargement de fichiers et de l’inspection du corps de la demande. Si vous exécutez le pare-feu d’applications Web Application Gateway v2 avec Core Rule Set 3.2 ou version ultérieure et que vous remarquez que les requêtes sont rejetées (ou pas) pour une limite de taille, veuillez vous référer aux étapes de résolution des problèmes au bas de cette page.

Limites

Le champ de taille du corps de la demande et la taille limite de chargement du fichier sont tous deux configurables dans le pare-feu d’applications Web. Le champ de la taille maximale du corps de la requête est spécifié en kilo-octets et contrôle la limite globale de la taille de la requête à l’exclusion de tout chargement de fichier. Le champ limite de chargement de fichiers est spécifié en mégaoctets et régit la taille maximale autorisée de chargement de fichiers. Pour connaître les limites de taille des requêtes et la limite de taille de chargement de fichiers, consultez Limites d’Application Gateway.

Pour les pare-feu d’applications Web Application Gateway v2 exécutant l’ensemble de règles de base 3.2 ou version ultérieure, l’application de la taille maximale du corps de la demande et la taille maximale du chargement de fichier peuvent être désactivées et le pare-feu d’applications Web ne rejette plus une requête ou un chargement de fichier pour cause de taille excessive. Lorsque l’application de la taille maximale du corps de la demande et de la taille maximale du chargement de fichier est désactivée dans le pare-feu d’applications Web, les limites de l’Application Gateway déterminent la taille maximale autorisée. Pour plus d’informations, consultez Limites d’Application Gateway.

Seules les requêtes avec un Content-Type multipart/form-data sont prises en compte pour les chargements de fichiers. Pour que le contenu soit considéré comme un chargement de fichier, il doit faire partie d’un formulaire multipart avec un en-tête filename. Pour tous les autres types de contenu, la limite de taille du corps de la demande s’applique.

Remarque

Si vous utilisez le Core Rule Set 3.2 ou une version ultérieure et que vous disposez d’une règle personnalisée de priorité élevée qui intervient en fonction du contenu des en-têtes, des cookies ou de l’URI d’une demande, cette règle aura la priorité sur toute limite de taille maximale de la demande ou de taille maximale du chargement du fichier. Cette optimisation permet au pare-feu d’applications Web d’exécuter des règles personnalisées de priorité élevée qui n’ont pas besoin de lire la demande complète en premier.

Exemple : si vous disposez d’une règle personnalisée avec la priorité 0 (la priorité la plus élevée) pour autoriser une demande avec l’en-tête xyz, même si la taille de la demande est plus grande que votre limite maximale de taille de demande, elle sera autorisée avant que la limite maximale de taille ne soit appliquée.

Inspection du corps des demandes

Le pare-feu d’applications Web propose un paramètre de configuration permettant d’activer ou de désactiver l’inspection du corps de la demande. Par défaut, l’inspection du corps de la demande est activée. Si l’inspection du corps de la demande est désactivée, le pare-feu d’applications Web n’évalue pas le contenu du corps d’un message HTTP. Dans ce cas, le pare-feu d’applications Web continue d’appliquer les règles du pare-feu d’applications Web sur les en-têtes, les cookies et les URI. Dans les pare-feux d’applications Web utilisant le Core Rule Set 3.1 (ou une version inférieure), si l’inspection du corps de la demande est désactivée, le champ de la taille maximale du corps de la demande n’est pas applicable et ne peut pas être défini.

Pour les pare-feux d’applications Web de stratégie utilisant le Core Rule Set 3.2 (ou une version plus récente), l’inspection du corps de la demande peut être activée/désactivée indépendamment de l’application de la taille du corps de la demande et des limites de taille de chargement de fichier. En outre, les pare-feux d’applications Web de stratégie utilisant le Core Rule Set 3.2 (ou une version plus récente) peuvent définir la limite maximale d’inspection du corps de la demande indépendamment de la taille maximale du corps de la demande. La limite maximale d’inspection du corps de la demande indique au pare-feu d’applications Web à quelle profondeur il doit inspecter la demande et appliquer les règles. La définition d’une valeur inférieure pour ce champ peut améliorer les performances du pare-feu d’applications Web, mais peut permettre à un contenu malveillant non inspecté de traverser votre pare-feu d’applications Web.

Pour les anciens pare-feux d’applications Web utilisant le Core Rule Set 3.1 (ou une version antérieure), la désactivation de l’inspection du corps de la demande permet d’envoyer au pare-feu d’applications Web des messages de plus de 128 Ko, mais aucune recherche de vulnérabilité n’est effectuée dans le corps du message. Pour les pare-feux d’applications Web de stratégie utilisant le Core Rule Set 3.2 (ou une version plus récente), vous pouvez obtenir le même résultat en désactivant la limite maximale du corps de la demande.

Lorsque votre pare-feu d’applications Web reçoit une demande dont la taille est supérieure à la limite, le comportement dépend du mode de votre pare-feu d’applications Web et de la version de l’ensemble de règles géré que vous utilisez.

  • Lorsque la stratégie de votre pare-feu d’applications Web est en mode Prévention, le pare-feu d’applications Web enregistre et bloque les demandes et les chargements de fichiers qui dépassent les limites de taille.
  • Lorsque votre stratégie de pare-feu d’applications Web est en mode Détection, pare-feu d’applications Web inspecte le corps jusqu’à la limite spécifiée et ignore le reste. Si l’en-tête Content-Length est présent et qu’il est supérieur à la limite de chargement de fichier, le pare-feu d’applications Web ignore l’ensemble du corps et enregistre la demande.

Dépannage

Si vous êtes un client du pare-feu d’applications Web Application Gateway v2 utilisant Core Rule Set 3.2 ou une version ultérieure et que vous rencontrez des problèmes avec des demandes, ou des chargements de fichiers, qui sont rejetés de manière incorrecte en raison de la taille maximale, ou si vous voyez que les demandes ne sont pas entièrement inspectées, il se peut que vous deviez vérifier que toutes les valeurs sont définies correctement. À l’aide de PowerShell ou de l’interface de ligne de commande Azure, vous pouvez vérifier la valeur de chaque paramètre et la mettre à jour au besoin.

Appliquer l’inspection du corps de la demande

  • PowerShell : « RequestBodyCheck »
  • CLI : « request_body_check »
  • Contrôle si votre pare-feu d’applications Web inspecte le corps de la demande et appliquera des règles gérées et personnalisées au trafic du corps de la demande conformément aux paramètres de votre stratégie de pare-feu d’applications Web.

Limite maximale d’inspection du corps de la demande (Ko)

  • PowerShell : « RequestBodyInspectLimitInKB »
  • CLI : « request_body_inspect_limit_in_kb »
  • Contrôle la profondeur du corps de la demande que le pare-feu d’applications Web inspecte et applique des règles gérées/personnalisées. En règle générale, il est préférable de régler cette valeur au maximum possible, mais certains clients peuvent souhaiter la réduire pour améliorer les performances.

Appliquer la limite maximale du corps de la demande

  • PowerShell : « RequestBodyEnforcement »
  • CLI : « request_body_enforcement »
  • Contrôle si votre pare-feu d’applications Web applique une limite de taille maximale aux corps de la demande. Si le pare-feu est désactivé, il ne rejette pas les demandes parce qu’elles sont trop volumineuses.

Taille maximale du corps de la demande (Ko)

  • PowerShell : « MaxRequestBodySizeInKB »
  • CLI : « max_request_body_size_in_kb »
  • Contrôle la taille du corps de la demande avant que le pare-feu d’applications Web ne la rejette parce qu’elle dépasse le paramètre de taille maximale.

Appliquer la limite maximale de chargement de fichier

  • PowerShell : « FileUploadEnforcement »
  • CLI : « file_upload_enforcement »
  • Contrôle si votre pare-feu d’applications Web applique une limite de taille maximale aux chargements de fichier. Si le pare-feu est désactivé, il ne rejette pas les téléchargements de fichiers parce qu’ils sont trop volumineux.

Taille maximale de chargement de fichier (Mo)

  • PowerShell : « FileUploadLimitInMB »
  • CLI : file_upload_limit_in_mb
  • Contrôle la taille d’un fichier chargé avant que le pare-feu d’applications Web ne le rejette parce qu’il dépasse le paramètre de taille maximale.

Remarque

« Inspecter le corps de la demande » contrôlé précédemment si le corps de la demande a été inspecté et si des règles ont été appliquées, ainsi que si une limite de taille maximale a été appliquée aux corps de la demande. Désormais, cette inspection est gérée par deux champs distincts qui peuvent être activés/désactivés indépendamment l’un de l’autre.

PowerShell

Vous pouvez utiliser les commandes PowerShell suivantes pour renvoyer votre stratégie Azure et consulter ses paramètres actuels.

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

Vous pouvez utiliser ces commandes pour mettre à jour les paramètres de stratégie avec les valeurs souhaitées pour les champs relatifs à la limite d’inspection et à la limitation de la taille maximale. Vous pouvez permuter « RequestBodyEnforcement » dans l’exemple suivant pour l’une des autres valeurs que vous souhaitez mettre à jour.

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

Interface de ligne de commande

Vous pouvez utiliser Azure CLI pour retourner les valeurs actuelles de ces champs à partir de vos paramètres de stratégie Azure et mettre à jour les champs vers les valeurs souhaitées à l’aide de ces commandes.

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

Sortie :

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

Étapes suivantes