-
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
-
Spécification du jeu de caractères dans les expressions
-
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!
Spécifier le jeu de caractères dans les expressions
L’infrastructure de stratégie de l’appliance Citrix ADC prend en charge les jeux de caractères ASCII et UTF-8. Le jeu de caractères par défaut est ASCII. Si le trafic pour lequel vous configurez une expression se compose uniquement de caractères ASCII, vous n’avez pas besoin de spécifier le jeu de caractères dans l’expression. L’appliance autorise tous les littéraux de chaînes et de caractères qui incluent des caractères binaires. Cependant, les jeux de caractères UTF-8 nécessitent toujours que les littéraux de chaîne et de caractères soient un UTF-8 valide.
CLIENT.TCP.PAYLOAD(100).CONTAINS("\xff\x02")
Dans une expression, la fonction SET_CHAR_SET () doit être introduite au point de l’expression après quoi le traitement des données doit être effectué dans le jeu de caractères spécifié. Par exemple, dans l’expression HTTP.REQ.BODY(1000).AFTER_REGEX(re/following example/).BEFORE_REGEX(re/In the preceding example/).CONTAINS_ANY(“Greek_ alphabet”), si les chaînes stockées dans le jeu de motifs “Greek_Alphabet” sont en UTF-8, vous devez inclure la fonction SET_CHAR_SET (UTF_8) immédiatement avant la fonction CONTAINS_ANY(“<string>”), comme suit :
HTTP.REQ.BODY(1000).AFTER_REGEX(re/following example/).BEFORE_REGEX(re/In the preceding example/).SET_CHAR_SET(UTF_8).CONTAINS_ANY("Greek_ alphabet")
La fonction SET_CHAR_SET () définit le jeu de caractères pour tout traitement ultérieur (c’est-à-dire pour toutes les fonctions suivantes) dans l’expression, à moins qu’il ne soit remplacé plus tard dans l’expression par une autre fonction SET_CHAR_SET () qui modifie le jeu de caractères. Par conséquent, si toutes les fonctions d’une expression simple donnée sont destinées à UTF-8, vous pouvez inclure la fonction SET_CHAR_SET (UTF_8) immédiatement après les fonctions qui identifient le texte (par exemple, les <name> <int> fonctions HEADER ( » « ) ou BODY ()). Dans le deuxième exemple qui suit le premier paragraphe ci-dessus, si les arguments ASCII transmis aux fonctions AFTER_REGEX () et BEFORE_REGEX () sont remplacés par des chaînes UTF-8, vous pouvez inclure la fonction SET_CHAR_SET (UTF_8) immédiatement après la fonction BODY (1000), comme suit :
HTTP.REQ.BODY(1000).SET_CHAR_SET(UTF_8).AFTER_REGEX(re/Bücher/).BEFORE_REGEX(re/Wörterbuch/).CONTAINS_ANY("Greek_alphabet")
Le jeu de caractères UTF-8 est un surensemble du jeu de caractères ASCII, de sorte que les expressions configurées pour le jeu de caractères ASCII continuent de fonctionner comme prévu si vous modifiez le jeu de caractères en UTF-8.
Expressions composées avec différents jeux de caractères
Dans une expression composée, si un sous-ensemble d’expressions est configuré pour fonctionner avec des données du jeu de caractères ASCII et que le reste des expressions est configuré pour fonctionner avec des données du jeu de caractères UTF-8, le jeu de caractères spécifié pour chaque expression individuelle est pris en compte lors de l’évaluation des expressions individuellement. Toutefois, lors du traitement de l’expression composée, juste avant le traitement des opérateurs, l’appliance promeut le jeu de caractères des valeurs ASCII renvoyées en UTF-8. Par exemple, dans l’expression composée suivante, la première expression simple évalue les données du jeu de caractères ASCII tandis que la seconde expression simple évalue les données du jeu de caractères UTF-8 :
HTTP.REQ.HEADER("MyHeader") == HTTP.REQ.BODY(10).SET_CHAR_SET(UTF_8)
Cependant, lors du traitement de l’expression composée, juste avant d’évaluer l’opérateur booléen « est égal à », l’appliance Citrix ADC promeut le jeu de caractères de la valeur renvoyée par HTTP.REQ.HEADER (« myHeader ») en UTF-8.
La première expression simple de l’exemple suivant évalue les données du jeu de caractères ASCII. Toutefois, lorsque l’appliance Citrix ADC traite l’expression composée, juste avant de concaténer les résultats des deux expressions simples, l’appliance promeut le jeu de caractères de la valeur renvoyée par HTTP.REQ.BODY (10) en UTF-8.
HTTP.REQ.BODY(10) + HTTP.REQ.HEADER("MyHeader").SET_CHAR_SET(UTF_8)
Par conséquent, l’expression composée renvoie des données dans le jeu de caractères UTF-8.
Spécifier le jeu de caractères en fonction du jeu de caractères du trafic
Vous pouvez définir le jeu de caractères sur UTF-8 en fonction des caractéristiques de trafic. Si vous ne savez pas si le jeu de caractères du trafic évalué est UTF-8, vous pouvez configurer une expression composée dans laquelle la première expression vérifie le trafic UTF-8 et les expressions suivantes définissent le jeu de caractères à UTF-8. Voici un exemple d’expression composée qui vérifie d’abord la valeur de « charset » dans l’en-tête Content-Type de la requête pour « UTF-8” avant de vérifier si les 1000 premiers octets de la requête contiennent la chaîne UTF-8 Bücher :
HTTP.REQ.HEADER("Content-Type").SET_TEXT_MODE(IGNORECASE).TYPECAST_NVLIST_T('=', '; ', '"').VALUE("charset").EQ("UTF-8") && HTTP.REQ.BODY(1000).SET_CHAR_SET(UTF_8).CONTAINS("Bücher")
Si vous êtes sûr que le jeu de caractères du trafic évalué est UTF-8, la deuxième expression de l’exemple est suffisante.
Littéraires de caractères et de chaîne dans les expressions
Lors de l’évaluation de l’expression, même si le jeu de caractères actuel est ASCII, les littéraux de caractères et les littéraux de chaîne, qui sont respectivement placés entre guillemets simples (‘’) et guillemets (« »), sont considérés comme des littéraux dans le jeu de caractères UTF-8. Dans une expression donnée, si une fonction fonctionne sur des littéraux de caractères ou de chaîne dans le jeu de caractères ASCII et que vous incluez un caractère non ASCII dans le littéral, une erreur est renvoyée.
Remarque :
Les littéraux de chaîne dans les expressions de stratégie avancées sont maintenant aussi longs que l’expression de stratégie. L’expression peut avoir une longueur de 1499 octets ou 8191 octets.
Valeurs en formats hexadécimaux et octaux
Lors de la configuration d’une expression, vous pouvez entrer des valeurs au format octal et hexadécimal. Cependant, chaque octet hexadécimal ou octal est considéré comme un octet UTF-8. Les octets UTF-8 non valides entraînent des erreurs, que la valeur soit saisie manuellement ou collée à partir du presse-papiers. Par exemple, “\xce\x20” est un caractère UTF-8 non valide car “c8” ne peut pas être suivi de “20” (chaque octet d’une chaîne UTF-8 multi-octets doit avoir le bit élevé). Un autre exemple de caractère UTF-8 non valide est “\xce \xa9”, puisque les caractères hexadécimaux sont séparés par un caractère d’espace blanc.
Fonctions qui retournent des chaînes UTF-8
Seules les fonctions text>.XPATH
et <text>.XPATH_JSON
et renvoient toujours les chaînes UTF-8. Les routines MYSQL suivantes déterminent au moment de l’exécution le jeu de caractères à renvoyer, en fonction des données du protocole :
MYSQL_CLIENT_T.USER
MYSQL_CLIENT_T.DATABASE
MYSQL_REQ_QUERY_T.COMMAND
MYSQL_REQ_QUERY_T.TEXT
MYSQL_REQ_QUERY_T.TEXT(<unsigned int>)
MYSQL_RES_ERROR_T.SQLSTATE
MYSQL_RES_ERROR_T.MESSAGE
MYSQL_RES_FIELD_T.CATALOG
MYSQL_RES_FIELD_T.DB
MYSQL_RES_FIELD_T.TABLE
MSQL_RES_FIELD_T.ORIGINAL_TABLE
MYSQL_RES_FIELD_T.NAME
MYSQL_RES_FIELD_T.ORIGINAL_NAME
MYSQL_RES_OK_T.MESSAGE
MYSQL_RES_ROW_T.TEXT_ELEM(<unsigned int>)
Paramètres de connexion du terminal pour UTF-8
Lorsque vous configurez une connexion à l’appliance Citrix ADC à l’aide d’une connexion de terminal (à l’aide de PuTTY, par exemple), vous devez définir le jeu de caractères pour la transmission des données en UTF-8.
Fonctions minimales et maximales dans une expression de stratégie avancée
Les expressions de stratégie avancées prennent en charge les fonctions minimales et maximales ci-dessous.
-
(<expression1>.max(<expression2>)
- renvoie le maximum des deux valeurs. -
(<expression1>.min(<expression2>)
- renvoie le minimum des deux valeurs.
Partager
Partager
Dans cet article
- Expressions composées avec différents jeux de caractères
- Spécifier le jeu de caractères en fonction du jeu de caractères du trafic
- Littéraires de caractères et de chaîne dans les expressions
- Valeurs en formats hexadécimaux et octaux
- Fonctions qui retournent des chaînes UTF-8
- Paramètres de connexion du terminal pour UTF-8
- Fonctions minimales et maximales dans une expression de stratégie avancée
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.