Les conditions de correspondance vous permettent de cibler des attributs spécifiques des requêtes HTTP lors de la configuration des listes d'autorisation de sites web ou des règles de protection personnalisées. Chaque condition teste un champ par rapport à une valeur à l'aide d'un opérateur logique. WAF applique la règle uniquement lorsque toutes les conditions d'une règle de protection sont remplies.
Fonctionnement des conditions de correspondance
Une condition de correspondance comporte trois parties :
Champ de correspondance — l'attribut de la requête HTTP à inspecter (par exemple, URL, IP ou User-Agent)
Opérateur logique — la méthode de comparaison de la valeur du champ (par exemple, Égal à, Contient ou Correspondance de préfixe)
Match content — la valeur de comparaison
Chaque règle de protection prend en charge jusqu'à cinq conditions de correspondance. Les conditions sont combinées avec une logique ET : une requête doit satisfaire chaque condition pour que WAF applique l'action de la règle.
Lors de la configuration d'une liste d'autorisation, spécifiez le paramètre Bypassed Modules pour indiquer quels modules WAF les requêtes correspondantes doivent contourner. Lors de la configuration d'une règle de protection personnalisée, spécifiez le paramètre Action pour définir l'action que WAF entreprend sur les requêtes correspondantes. Pour plus d'informations, consultez :
Champs de correspondance pris en charge
Les champs sont regroupés selon leur disponibilité par édition. Les champs marqués Pro+ sont disponibles dans les éditions Pro, Business, Enterprise et Exclusive. Les champs marqués Business+ nécessitent les éditions Business, Enterprise ou Exclusive.
Éditions Pro, Business, Enterprise et Exclusive
| Champ | Type | Description | Opérateurs logiques pris en charge |
|---|---|---|---|
| URL | Chaîne | L'URL complète de la requête. | Égal à, Différent de, Égal à l'une des plusieurs valeurs, Différent de toute valeur ; Contient, Ne contient pas, Contient l'une des plusieurs valeurs, Ne contient aucune valeur ; Longueur égale à, Longueur supérieure à, Longueur inférieure à ; Correspondance de préfixe, Correspondance de suffixe ; Correspondance d'expression régulière, Non-correspondance d'expression régulière. Important
L'édition Pro ne prend pas en charge la correspondance d'expression régulière. |
| IP | IP | L'adresse IP source de la requête. Saisissez des adresses IP individuelles ou des blocs CIDR (par exemple, 47.100.XX.XX/24). Séparez les plusieurs valeurs par des virgules. |
Appartient à, N'appartient pas à. Remarque
Une règle de protection prend en charge un maximum combiné de 50 adresses IP ou blocs CIDR pour toutes les conditions de correspondance IP. |
| Referer | Chaîne | L'URL de la page qui a créé un lien vers la ressource demandée (en-tête HTTP Referer). |
Égal à, Différent de, Égal à l'une des plusieurs valeurs, Différent de toute valeur ; Contient, Ne contient pas, Contient l'une des plusieurs valeurs, Ne contient aucune valeur ; Existe, N'existe pas ; Vide ; Longueur égale à, Longueur supérieure à, Longueur inférieure à ; Correspondance de préfixe, Correspondance de suffixe ; Correspondance d'expression régulière, Non-correspondance d'expression régulière. Important
L'édition Pro ne prend pas en charge la correspondance d'expression régulière. |
| User-Agent | Chaîne | Le navigateur, le moteur de rendu et la version du client, tels qu'ils sont signalés dans l'en-tête User-Agent. |
Égal à, Différent de, Égal à l'une des plusieurs valeurs, Différent de toute valeur ; Contient, Ne contient pas, Contient l'une des plusieurs valeurs, Ne contient aucune valeur ; Existe, N'existe pas ; Vide ; Longueur égale à, Longueur supérieure à, Longueur inférieure à ; Correspondance de préfixe, Correspondance de suffixe ; Correspondance d'expression régulière, Non-correspondance d'expression régulière. Important
L'édition Pro ne prend pas en charge la correspondance d'expression régulière. |
| Params | Chaîne | La chaîne de requête entière dans l'URL de la requête — tout ce qui suit le ?. Par exemple, dans www.example.com/index.html?action=login, la valeur Params est action=login. |
Égal à, Différent de, Égal à l'une des plusieurs valeurs, Différent de toute valeur ; Contient, Ne contient pas, Contient l'une des plusieurs valeurs, Ne contient aucune valeur ; Existe, N'existe pas ; Longueur égale à, Longueur supérieure à, Longueur inférieure à ; Correspondance de préfixe, Correspondance de suffixe ; Correspondance d'expression régulière, Non-correspondance d'expression régulière. Important
L'édition Pro ne prend pas en charge la correspondance d'expression régulière. |
| Query-Arg | Chaîne | Un argument de requête individuel dans l'URL de la requête. Par exemple, dans www.example.com/request_path?arg1=a&arg2=b, les arguments de requête sont arg1=a et arg2=b. Remarque
Lorsque vous définissez le champ de correspondance sur Query-Arg et l'opérateur logique sur Contient, WAF effectue une correspondance de sous-chaîne sur les noms des arguments. La définition du contenu de la correspondance sur |
Égal à, Différent de, Égal à l'une des plusieurs valeurs, Différent de toute valeur ; Contient, Ne contient pas, Contient l'une des plusieurs valeurs, Ne contient aucune valeur ; Existe, N'existe pas ; Vide ; Longueur égale à, Longueur supérieure à, Longueur inférieure à ; Correspondance de préfixe, Correspondance de suffixe ; Correspondance d'expression régulière. Important
L'édition Pro ne prend pas en charge la correspondance d'expression régulière. |
| URLPath | Chaîne | Le composant chemin de l'URL de la requête, à l'exclusion de la chaîne de requête. | Égal à, Différent de, Égal à l'une des plusieurs valeurs, Différent de toute valeur ; Contient, Ne contient pas, Contient l'une des plusieurs valeurs, Ne contient aucune valeur ; Longueur égale à, Longueur supérieure à, Longueur inférieure à ; Correspondance de préfixe, Correspondance de suffixe ; Correspondance d'expression régulière, Non-correspondance d'expression régulière. Important
L'édition Pro ne prend pas en charge la correspondance d'expression régulière. |
Uniquement pour les éditions Business, Enterprise et Exclusive
| Champ | Type | Description | Opérateurs logiques pris en charge |
|---|---|---|---|
| Cookie | Chaîne | Les données de cookie dans la requête. | Égal à, Différent de, Égal à l'une des plusieurs valeurs, Différent de toute valeur ; Contient, Ne contient pas, Contient l'une des plusieurs valeurs, Ne contient aucune valeur ; Existe, N'existe pas ; Longueur égale à, Longueur supérieure à, Longueur inférieure à ; Correspondance d'expression régulière, Non-correspondance d'expression régulière. |
| Content-Type | Chaîne | Le type de contenu HTTP spécifié pour la réponse. Également connu sous le nom de type MIME (Multipurpose Internet Mail Extensions). | Égal à, Différent de, Égal à l'une des plusieurs valeurs, Différent de toute valeur ; Contient, Ne contient pas, Contient l'une des plusieurs valeurs, Ne contient aucune valeur ; Longueur égale à, Longueur supérieure à, Longueur inférieure à ; Correspondance d'expression régulière, Non-correspondance d'expression régulière. Important
L'édition Pro ne prend pas en charge la correspondance d'expression régulière. |
| Content-Length | Nombre | Le nombre d'octets autorisés dans la réponse. | Valeur inférieure à, Valeur égale à, Valeur supérieure à. |
| X-Forwarded-For | Chaîne | L'adresse IP d'origine d'un client dont la requête a été transférée par un proxy HTTP ou une instance Server Load Balancer (SLB). L'en-tête X-Forwarded-For (XFF) est présent uniquement dans les requêtes transférées. |
Égal à, Différent de, Égal à l'une des plusieurs valeurs, Différent de toute valeur ; Contient, Ne contient pas ; N'existe pas ; Longueur égale à, Longueur supérieure à, Longueur inférieure à. |
| Post-Body | Chaîne | Le contenu du corps de la requête. | Égal à, Différent de ; Contient, Ne contient pas ; N'existe pas ; Correspondance de préfixe, Correspondance de suffixe ; Correspondance d'expression régulière. Important
L'édition Pro ne prend pas en charge la correspondance d'expression régulière. |
| Server-Port | Chaîne | Le numéro de port du serveur d'origine. Par exemple, dans www.example.com:9999, le port du serveur est 9999. |
Égal à, Différent de, Égal à l'une des plusieurs valeurs, Différent de toute valeur. |
| Http-Method | Chaîne | La méthode HTTP de la requête. Valeurs valides : GET, POST, DELETE, PUT, OPTIONS. |
Égal à, Différent de, Égal à l'une des plusieurs valeurs, Différent de toute valeur. |
| Header | Chaîne | Un en-tête de requête HTTP personnalisé. Utilisez ce champ pour effectuer une correspondance sur des en-têtes non standard ou spécifiques à l'application. | Égal à, Différent de, Égal à l'une des plusieurs valeurs, Différent de toute valeur ; Contient, Ne contient pas, Contient l'une des plusieurs valeurs, Ne contient aucune valeur ; Existe, N'existe pas ; Longueur égale à, Longueur supérieure à, Longueur inférieure à ; Correspondance d'expression régulière, Non-correspondance d'expression régulière. Important
L'édition Pro ne prend pas en charge la correspondance d'expression régulière. |
Params contre Query-Arg
Params et Query-Arg inspectent tous deux la chaîne de requête, mais à des granularités différentes :
| Params | Query-Arg | |
|---|---|---|
| Portée | La chaîne de requête entière en tant qu'une seule valeur | Un argument individuel au sein de la chaîne de requête |
| Exemple de valeur | action=login&user=alice |
action=login ou user=alice |
| Idéal pour | La correspondance du modèle de chaîne de requête complet | La correspondance d'un nom ou d'une valeur d'argument spécifique |
Par exemple, pour bloquer les requêtes où arg1 est défini sur une valeur spécifique, utilisez Query-Arg avec Égal à. Pour correspondre à toute requête dont la chaîne de requête contient une sous-chaîne particulière, utilisez Params avec Contient.