Le moteur de règles permet de créer et de déployer diverses règles (cache, redirection, compression, origine, protection Web Application Firewall (WAF), etc.) en suivant une syntaxe et une logique communes.
Présentation
Le moteur de règles d'Edge Security Acceleration (ESA) permet de créer des règles via une interface graphique. ESA vérifie si une configuration spécifique s'applique aux requêtes entrantes selon les paramètres définis dans ces règles. Ce mécanisme offre un contrôle plus flexible et précis de la distribution du contenu.
Priorités des règles
Les règles ciblant un aspect spécifique (comme le TTL du cache navigateur) priment sur la configuration globale correspondante.
Lorsqu'une liste de règles régit un aspect particulier (tel que la mise en cache), celles-ci s'appliquent séquentiellement, de haut en bas. Pour modifier la priorité d'une règle donnée, ajustez sa position dans la liste.
Remarques d'utilisation
La taille d'une condition de règle unique ne peut excéder 4 Ko. Par ailleurs, la taille totale des informations de configuration d'un site web, hors configuration de sécurité, est plafonnée à 512 Ko.
Une condition de règle admet une structure imbriquée comportant deux niveaux de profondeur au maximum. Chaque niveau accepte des paramètres d'opérations logiques distincts.
Chaque condition de règle peut contenir jusqu'à 20 champs de correspondance.
Description du paramètre Apply to
Lors de la création d'une règle, les options suivantes sont disponibles pour le paramètre Apply to :
All Requests : la règle créée s'applique à l'ensemble du trafic du site web.
Filtered Requests : la règle créée ne concerne que le trafic correspondant à l'expression personnalisée. Cette option permet de filtrer les requêtes avec précision.
Syntaxe des règles
Une condition de règle se compose d'expressions et d'un opérateur logique.
Expression : sert à filtrer les requêtes présentant des caractéristiques spécifiques.
Opérateur logique : permet de combiner plusieurs expressions.
Vous pouvez définir plusieurs expressions et les associer afin de filtrer les requêtes selon vos besoins métier.
Opérateurs logiques
Un opérateur logique relie les expressions d'une condition de règle pour exécuter une opération logique. Les opérateurs suivants sont pris en charge :
and : la condition de règle n'est satisfaite que si toutes les expressions qu'elle contient sont vraies.
or : la condition de règle est satisfaite dès qu'au moins l'une des expressions est vraie.
Expressions
Une expression simple comprend les paramètres décrits dans le tableau ci-dessous.
|
Paramètre |
Paramètre de syntaxe correspondant |
Description |
Obligatoire |
|
Champ de correspondance |
Field |
Le champ de correspondance. |
Oui |
|
Valeur de correspondance |
Value |
La valeur de correspondance. |
Oui |
|
Opérateur de comparaison |
Comparison_operator |
L'opérateur de comparaison. |
Oui |
Syntaxe des expressions
-
Expressions simples
Syntaxe : <field><comparison_operator><value>
Exemple : http.request.uri.path matches"/image\.(jpg|png)$"
-
Expressions composées
Définition : plusieurs expressions reliées par des opérateurs logiques
Syntaxe : <expreesion><logical_operator><expression>
Exemple : http.host eq "www.example.com" and http.request.uri.path eq "/content"
Champs de correspondance
Le champ de correspondance du nom d'hôte (http.host) s'applique aux règles de chiffrement SSL/TLS et n'accepte que les opérateurs equals et does not equal.
Certains fournisseurs d'accès Internet (FAI) peuvent attribuer des adresses IP privées aux clients de régions spécifiques. Dans ce cas, les POP ne peuvent pas déterminer avec précision le pays ou la région, l'adresse IP source, la province ou le FAI du client, car les requêtes reçues proviennent d'une adresse IP privée. Pour plus d'informations, consultez Identifier un bloc CIDR privé
|
Champ de correspondance |
Description |
Nom de variable dans l'expression |
Opérateur de comparaison pris en charge |
Valeur de correspondance |
|
Request Method |
Méthode employée par la requête. |
http.request.method |
|
Valeurs valides :
|
|
HTTP Version |
Version HTTP utilisée par la requête. |
http.request.version |
Valeurs valides :
|
|
|
Country/Region |
Pays ou région auquel appartient l'adresse IP du client. |
ip.geoip.country |
|
|
|
File Name |
Nom du fichier demandé par le client. |
http.request.uri.path.file_name |
|
|
|
File Extension |
Extension du nom de fichier demandé par le client. |
http.request.uri.path.extension |
|
|
|
IP Source Address |
Adresse IP du client. |
ip.src |
|
|
|
SSL/HTTPS |
Type de protocole utilisé par la requête. |
http.request.scheme |
|
Valeurs valides :
|
|
Hostname |
Nom d'hôte présent dans la requête. Ordre de correspondance : si des noms d'hôte figurent à la fois dans l'URL et dans l'en-tête HOST, celui de l'URL de requête prévaut. |
http.host |
|
|
|
URI |
Chemin dans l'URL de la requête, incluant les paramètres de requête. |
http.request.uri |
|
|
|
URI Full |
URI (Uniform Resource Identifier) complète de la requête. |
http.request.full_uri |
|
|
|
URI Path |
Chemin dans l'URL de la requête, excluant les paramètres de requête. |
http.request.uri.path |
|
|
|
URI Query String |
Ensemble des paramètres de requête présents dans l'URL. |
http.request.uri.query |
|
|
|
URI Query String Parameter |
Paramètres de requête spécifiques dans l'URL de la requête. |
http.request.uri.args["session"] |
|
|
|
Cookie |
Cookie inclus dans la requête. |
http.cookie |
|
|
|
User Agent |
Informations sur le client contenues dans la requête. |
http.user_agent |
|
|
|
Referer |
URL de la page web d'origine d'où la ressource a été demandée. |
http.referer |
|
|
|
X-Forwarded-For |
Valeur de l'en-tête X-Forwarded-For dans la requête. |
http.x_forwarded_for |
|
|
|
Header |
En-tête spécifique dans la requête. |
http.request.headers["session"] |
|
|
|
Cookie Value Of |
Paramètre de cookie spécifique dans la requête. |
http.request.cookies["session"] |
|
|
|
ISP |
FAI auquel appartient l'adresse IP du client. |
ip.src.isp |
|
Valeurs valides :
|
|
IP Protocol Version |
Version du protocole de l'adresse IP du client. |
ip.src.version |
|
Valeurs valides :
|
|
Province |
Subdivision administrative de premier niveau d'un pays. |
ip.src.subdivision_1_iso_code |
|
|
|
Load Balancer Region |
Région où réside l'équilibreur de charge. |
ip.src.region_code |
|
|
|
Request Timestamp |
Horodatage Unix indiquant l'heure d'arrivée de la requête au POP. |
http.request.timestamp.sec |
|
|
Opérateurs de comparaison
|
Nom de l'opérateur |
Opérateur |
Négable |
Type de valeur |
Remarques |
|
equals |
eq |
Non |
string |
/ |
|
does not equal |
ne |
Non |
string |
/ |
|
contains |
contains |
Oui |
string |
Vérifie si la chaîne spécifiée est contenue. |
|
matches regex |
matches |
Oui |
string |
Effectue une correspondance par expression régulière. Réservé aux forfaits Business et Enterprise. |
|
is in |
in |
Oui |
array |
L'expression est vraie si l'un des éléments spécifiés correspond.
|
|
starts with |
starts_with |
Oui |
string |
/ |
|
ends with |
ends_with |
Oui |
string |
/ |
|
length less than |
len-lt |
Non |
integer |
Correspondance trouvée si la longueur de la chaîne est inférieure à la valeur spécifiée. |
|
length equal to |
len-eq |
Non |
integer |
Correspondance trouvée si la longueur de la chaîne est égale à la valeur spécifiée. |
|
length greater than |
len-gt |
Non |
integer |
Correspondance trouvée si la longueur de la chaîne est supérieure à la valeur spécifiée. |
|
in list |
in_list |
Oui |
integer |
Cet opérateur s'applique aux listes globales créées au niveau du compte. |
|
exists |
exists |
Oui |
bool |
Vérifie l'existence de la clé spécifiée dans les paires clé-valeur. Utile notamment pour les règles fondées sur les en-têtes, les cookies ou les chaînes de requête. |
|
greater than |
gt |
Non |
integer |
Applicable aux règles dont les valeurs sont des entiers. |
|
smaller than |
lt |
Non |
integer |
Applicable aux règles dont les valeurs sont des entiers. |
|
greater than or equal to |
ge |
Non |
integer |
Applicable aux règles dont les valeurs sont des entiers. |
|
smaller than or equal to |
le |
Non |
integer |
Applicable aux règles dont les valeurs sont des entiers. |
Caractères génériques
|
Caractère générique |
Description |
|
|
Correspond à un seul caractère. |
|
|
Correspond à un nombre quelconque de caractères. |
Créer des expressions
Par défaut, le générateur d'expressions s'affiche pour vous assister dans la création d'expressions.
Utiliser le générateur d'expressions
Le générateur d'expressions permet de concevoir rapidement des expressions de manière interactive. Toutefois, pour les expressions complexes, il peut être nécessaire de basculer vers l'éditeur d'expressions.
Par exemple, pour créer une expression basée sur la méthode de requête, sélectionnez les composants appropriés dans les listes déroulantes afin que le générateur construise automatiquement l'expression.

Utiliser l'éditeur d'expressions
L'éditeur d'expressions offre une flexibilité accrue pour élaborer des expressions plus complexes.
-
Cliquez sur Edit Expression.

-
Saisissez les expressions dans l'éditeur.
