-
Applications et modèles AppExpert
-
Personnaliser la configuration AppExpert
-
Configurer les services et les groupes de services pour une unité d'application
-
Configurer les points de terminaison publics pour une application
-
Configurer des groupes de persistance pour les unités d'application
-
Afficher les applications AppExpert et configurer les entités à l'aide du visualiseur d'applications
-
Configurer l'authentification, l'autorisation et l'audit d'applications
-
-
Configuration de l'expression de stratégie avancée : Mise en route
-
Éléments de base d'une expression de stratégie avancée
-
Expressions classiques dans les expressions de stratégie avancées
-
Configuration d'expressions de stratégie avancées dans une stratégie
-
Configuration d'expressions de stratégie avancées en dehors du contexte d'une stratégie
-
-
Expressions de stratégie avancées : utilisation de dates, d'heures et de nombres
-
Expressions de stratégie avancées : analyse des données HTTP, TCP et UDP
-
Expressions de stratégie avancées : analyse des certificats SSL
-
Expressions de stratégie avancées : adresses IP et MAC, débit, ID VLAN
-
Expressions de stratégie avancées : fonctions d'analyse de flux
-
Référence aux expressions - Expressions de stratégie avancées
-
Résumé d'exemples d'expressions et de stratégies de syntaxe par défaut
-
Didacticiel exemples de stratégies de syntaxe par défaut pour la réécriture
-
Migration des règles Apache mod_rewrite vers la syntaxe par défaut
-
-
Réécrire des exemples d'action et de stratégie
-
Exemple 1 : supprimer les anciens en-têtes X-Forwarded-For et client-IP
-
Exemple 3 : Marquage des connexions sécurisées et non sécurisées
-
Exemple 6 : Migration des règles du module de réécriture Apache
-
Exemple 8 : rediriger les requêtes vers le serveur interrogé
-
Exemple 11 : chiffrement RSA basé sur une stratégie sans remplissage
-
This content has been machine translated dynamically.
Dieser Inhalt ist eine maschinelle Übersetzung, die dynamisch erstellt wurde. (Haftungsausschluss)
Cet article a été traduit automatiquement de manière dynamique. (Clause de non responsabilité)
Este artículo lo ha traducido una máquina de forma dinámica. (Aviso legal)
此内容已经过机器动态翻译。 放弃
このコンテンツは動的に機械翻訳されています。免責事項
이 콘텐츠는 동적으로 기계 번역되었습니다. 책임 부인
Este texto foi traduzido automaticamente. (Aviso legal)
Questo contenuto è stato tradotto dinamicamente con traduzione automatica.(Esclusione di responsabilità))
This article has been machine translated.
Dieser Artikel wurde maschinell übersetzt. (Haftungsausschluss)
Ce article a été traduit automatiquement. (Clause de non responsabilité)
Este artículo ha sido traducido automáticamente. (Aviso legal)
この記事は機械翻訳されています.免責事項
이 기사는 기계 번역되었습니다.책임 부인
Este artigo foi traduzido automaticamente.(Aviso legal)
这篇文章已经过机器翻译.放弃
Questo articolo è stato tradotto automaticamente.(Esclusione di responsabilità))
Translation failed!
Éléments de base d’une expression de stratégie avancée
Une expression de stratégie avancée se compose, au minimum, d’un préfixe (ou d’un seul élément utilisé à la place d’un préfixe). La plupart des expressions spécifient également une opération à effectuer sur les données identifiées par le préfixe. Vous formatez une expression de 1 499 caractères au maximum comme suit :
<prefix>.<operation> [<compound-operator> <prefix>.<operation>. . .]
où
-
<prefix>
est un point d’ancrage pour le démarrage d’une expression.
Le préfixe est une clé délimitée par une période qui identifie une unité de données. Par exemple, le préfixe suivant examine les requêtes HTTP pour la présence d’un en-tête nommé Content-Type :
http.req.header (« Content-Type »)
Les préfixes peuvent également être utilisés seuls pour renvoyer la valeur de l’objet que le préfixe identifie.
-
<operation>
identifie une évaluation à effectuer sur les données identifiées par le préfixe.
Par exemple, considérez l’expression suivante :
http.req.header(“Content-Type”).eq(“text/html”)
Dans cette expression, ce qui suit est le composant opérateur :
eq(“text/html”)
Cet opérateur fait en sorte que Citrix ADC évalue toutes les requêtes HTTP qui contiennent un en-tête Content-Type, et en particulier, détermine si la valeur de cet en-tête est égale à la chaîne “text/html”. Pour plus d’informations, voir « Opérations ». «
-
<compound-operator>
est un opérateur booléen ou arithmétique qui forme une expression composée à partir de plusieurs éléments préfixes ou préfix.operation.
Par exemple, considérez l’expression suivante :
http.req.header(“Content-Type”).eq(“text/html”) && http.req.url.contains(“.html”)
Préfixes
Un préfixe d’expression représente une donnée discrète. Par exemple, un préfixe d’expression peut représenter une URL HTTP, un en-tête de cookie HTTP ou une chaîne dans le corps d’une requête HTTP POST. Un préfixe d’expression peut identifier et renvoyer une grande variété de types de données, notamment les suivants :
- Une adresse IP du client dans un paquet TCP/IP
- Heure système Citrix ADC
- Une légende externe sur HTTP
- Type d’enregistrement TCP ou UDP
Dans la plupart des cas, un préfixe d’expression commence par l’un des mots-clés suivants :
- CLIENT:
- Identifie une caractéristique du client qui envoie une demande ou reçoit une réponse, comme dans les exemples suivants :
- Le préfixe client.ip.dst désigne l’adresse IP de destination dans la requête ou la réponse.
- Le préfixe client.ip.src désigne l’adresse IP source.
- HTTP:
- Identifie un élément dans une requête HTTP ou une réponse, comme dans les exemples suivants :
- Le préfixe http.req.body (integer) désigne le corps de la requête HTTP comme un objet texte multiligne, jusqu’à la position du caractère désignée dans un entier.
- Le préfixe http.req.header (« header_name ») désigne un en-tête HTTP, comme spécifié dans header_name.
- Le préfixe http.req.url désigne une URL HTTP au format URL.
-
SERVER:
Identifie un élément du serveur qui traite une demande ou envoie une réponse.
-
SYS:
Identifie une caractéristique de Citrix ADC qui traite le trafic.
Remarque : Notez que les stratégies DNS prennent en charge uniquement les objets SYS, CLIENT et SERVER.
En outre, dans Citrix Gateway, la fonction VPN sans client peut utiliser les types de préfixes suivants :
-
TEXT:
Identifie tout élément de texte dans une requête ou une réponse.
-
CIBLE :
Identifie la cible d’une connexion.
-
URL :
Identifie un élément dans la partie URL d’une requête ou d’une réponse HTTP.
En règle générale, tout préfixe d’expression peut être une expression autonome. Par exemple, le préfixe suivant est une expression complète qui renvoie le contenu de l’en-tête HTTP spécifié dans l’argument chaîne (entre guillemets) :
http.res.header.("myheader")
Ou vous pouvez combiner des préfixes avec des opérations simples pour déterminer les valeurs TRUE et FALSE. Par exemple, ce qui suit renvoie une valeur TRUE ou FALSE :
http.res.header.("myheader").exists
Vous pouvez également utiliser des opérations complexes sur des préfixes individuels et plusieurs préfixes au sein d’une expression, comme dans l’exemple suivant :
http.req.url.length + http.req.cookie.length <= 500
Les préfixes d’expression que vous pouvez spécifier dépendent de la fonctionnalité Citrix ADC. Le tableau suivant décrit les préfixes d’expression qui présentent un intérêt sur une base par entité
Fonctionnalité | Types de préfixe d’expression utilisés dans la fonction |
---|---|
DNS | SYS, CLIENT, SERVER |
Répondeur dans les fonctions de protection | HTTP, SYS, CLIENT |
Commutation de contenu | HTTP, SYS, CLIENT |
Réécrire | HTTP, SYS, CLIENT, SERVER, URL, TEXT, TARGET, VPN |
Mise en cache intégrée | HTTP, SYS, CLIENT, SERVER |
Citrix Gateway, accès sans client | HTTP, SYS, CLIENT, SERVER, URL, TEXT, TARGET, VPN |
Tableau 1. Types autorisés de préfixes d’expression dans diverses fonctionnalités de Citrix ADC
Remarque : Pour plus d’informations sur les préfixes d’expression autorisés dans une fonction, reportez-vous à la documentation de cette fonction.
Expressions à un seul élément
Le type le plus simple d’expression de stratégie avancée contient un seul élément. Cet élément peut être l’un des éléments suivants :
- C’est vrai. Une expression de stratégie avancée peut simplement consister en la valeur true. Ce type d’expression renvoie toujours une valeur TRUE. Il est utile pour chaîner des actions de stratégie et déclencher des expressions Goto.
- Faux. Une expression de stratégie avancée peut simplement consister en la valeur false. Ce type d’expression renvoie toujours une valeur FALSE.
- Préfixe d’une expression composée. Par exemple, le préfixe HTTP.REQ.HOSTNAME est une expression complète qui renvoie un nom d’hôte et HTTP.REQ.URL est une expression complète qui renvoie une URL. Le préfixe peut également être utilisé conjointement avec des opérations et des préfixes supplémentaires pour former une expression composée.
Opérations
Dans la plupart des expressions, vous spécifiez également une opération sur les données identifiées par le préfixe. Par exemple, supposons que vous spécifiez le préfixe suivant :
http.req.url
Ce préfixe extrait les URL dans les requêtes HTTP. Ce préfixe d’expression ne nécessite pas l’utilisation d’opérateurs dans une expression. Toutefois, lorsque vous configurez une expression qui traite les URL de requête HTTP, vous pouvez spécifier des opérations qui analysent des caractéristiques particulières de l’URL. Voici quelques possibilités :
- Recherchez un nom d’hôte particulier dans l’URL.
- Recherchez un chemin particulier dans l’URL.
- Évaluez la longueur de l’URL.
- Recherchez une chaîne dans l’URL qui indique un horodatage et convertissez-la en GMT.
Voici un exemple de préfixe qui identifie un en-tête HTTP nommé Serveur et une opération qui recherche la chaîne IIS dans la valeur d’en-tête :
http.res.header("Server").contains("IIS")
Voici un exemple de préfixe qui identifie les noms d’hôtes et une opération qui recherche la chaîne « www.mycompany.com » comme valeur du nom :
http.req.hostname.eq("www.mycompany.com")
Opérations de base sur les préfixes d’expression
Le tableau suivant décrit quelques-unes des opérations de base qui peuvent être effectuées sur les préfixes d’expression.
Opération | Détermine si oui ou non |
---|---|
CONTAINS( |
L’objet correspond |
EXISTS | Un élément particulier est présent dans un objet. Voici un exemple : http.res.header (« myHDR ») .exists |
EQ( |
Une valeur non numérique particulière est présente dans un objet. Voici un exemple : http.req.method.eq (post) |
EQ( |
Une valeur numérique particulière est présente dans un objet. Voici un exemple : client.ip.dst.eq (10.100.10.100) |
LT ( |
La valeur d’un objet est inférieure à une valeur particulière. Voici un exemple : http.req.content_length.lt (5000) |
GT ( |
La valeur d’un objet est supérieure à une valeur particulière. Voici un exemple : http.req.content_length.gt (5) |
Le tableau suivant résume quelques-uns des types d’opérations disponibles.
Type d’opération | Description |
---|---|
Opérations de texte | Faites correspondre des chaînes individuelles et des ensembles de chaînes avec n’importe quelle partie d’une cible. La cible peut être une chaîne entière, le début d’une chaîne ou n’importe quelle partie du texte entre le début et la fin de la chaîne. Par exemple, vous pouvez extraire la chaîne « XYZ » de « XYZSomeText ». Ou, vous pouvez comparer une valeur d’en-tête HTTP avec un tableau de chaînes différentes. Vous pouvez également transformer du texte en un autre type de données. Voici des exemples : Transformer une chaîne en une valeur entière, créer une liste à partir des chaînes de requête dans une URL et transformer une chaîne en une valeur de temps. |
Opérations numériques | Les opérations numériques incluent l’application d’opérateurs arithmétiques, l’évaluation de la longueur du contenu, le nombre d’éléments dans une liste, les dates, les heures et les adresses IP. |
Partager
Partager
This Preview product documentation is Cloud Software Group Confidential.
You agree to hold this documentation confidential pursuant to the terms of your Cloud Software Group Beta/Tech Preview Agreement.
The development, release and timing of any features or functionality described in the Preview documentation remains at our sole discretion and are subject to change without notice or consultation.
The documentation is for informational purposes only and is not a commitment, promise or legal obligation to deliver any material, code or functionality and should not be relied upon in making Cloud Software Group product purchase decisions.
If you do not agree, select I DO NOT AGREE to exit.