ADC

Format de codage de caractères PCRE

Le système d’exploitation NetScaler prend en charge la saisie directe de caractères dans le jeu de caractères ASCII imprimable uniquement, c’est-à-dire des caractères dont le code hexadécimal est compris entre HEX 20 (ASCII 32) et HEX 7E (ASCII 127). Pour inclure un caractère dont le code se trouve en dehors de cette plage dans votre configuration Web App Firewall, vous devez entrer son code hexadécimal UTF-8 en tant qu’expression régulière PCRE.

De nombreux types de caractères nécessitent un codage à l’aide d’une expression régulière PCRE si vous les incluez dans la configuration de votre Web App Firewall sous forme d’URL, de nom de champ de formulaire ou d’expression d’objet sécurisé. Ils incluent :

  • Caractères ASCII supérieurs. Caractères dont le codage va de HEX 7F (ASCII 128) à HEX FF (ASCII 255). Selon la table de caractères utilisée, ces codages peuvent faire référence à des codes de contrôle, des caractères ASCII accentués ou d’autres modifications, des caractères alphabétiques non latins et des symboles non inclus dans le jeu ASCII de base. Ces caractères peuvent apparaître dans les URL, les noms de champs de formulaire et les expressions d’objets sécurisés.
  • Caractères sur deux octets. Caractères dont l’encodage utilise deux mots de 8 octets. Les caractères codés sur deux octets sont principalement utilisés pour représenter du texte chinois, japonais et coréen au format électronique. Ces caractères peuvent apparaître dans les URL, les noms de champs de formulaire et les expressions d’objets sécurisés.

    Caractères de contrôle ASCII. Caractères non imprimables utilisés pour envoyer des commandes à une imprimante. Tous les caractères ASCII dont le code hexadécimal est inférieur à HEX 20 (ASCII 32) entrent dans cette catégorie. Toutefois, ces caractères ne doivent jamais apparaître dans une URL ou un nom de champ de formulaire et apparaîtront rarement, voire jamais, dans une expression d’objet sécurisé.

L’appliance NetScaler ne prend pas en charge l’intégralité du jeu de caractères UTF-8, mais uniquement les caractères contenus dans les huit jeux de caractères suivants :

  • Anglais américain (ISO-8859-1). Bien que l’étiquette indique « English US », le Web App Firewall prend en charge tous les caractères du jeu de caractères ISO-8859-1, également appelé jeu de caractères Latin-1. Ce jeu de caractères représente entièrement la plupart des langues modernes d’Europe occidentale et représente tous les caractères rares sauf quelques uns dans le reste.

  • Chinois traditionnel (Big5). Le Web App Firewall prend en charge tous les caractères du jeu de caractères BIG5, qui inclut tous les caractères chinois traditionnels (idéogrammes) couramment utilisés en chinois moderne tels qu’ils sont parlés et écrits à Hong Kong, à Macao, à Taïwan et par de nombreuses personnes d’origine ethnique chinoise qui vivent en dehors de la Chine continentale.

  • Chinois simplifié (GB2312). Le Web App Firewall prend en charge tous les caractères du jeu de caractères GB2312, qui inclut tous les caractères chinois simplifiés (idéogrammes) couramment utilisés en chinois moderne tels qu’ils sont parlés et écrits en Chine continentale.

  • japonais (SJIS). Le Web App Firewall prend en charge tous les caractères du jeu de caractères Shift-JIS (SJIS), qui inclut la plupart des caractères (idéogrammes) couramment utilisés en japonais moderne.

  • japonais (EUC-JP). Le Web App Firewall prend en charge tous les caractères du jeu de caractères EUC-JP, qui inclut tous les caractères (idéogrammes) couramment utilisés en japonais moderne.

  • Coréen (EUC-KR). Le Web App Firewall prend en charge tous les caractères du jeu de caractères EUC-KR, qui inclut tous les caractères (idéogrammes) couramment utilisés en coréen moderne.

  • Turc (ISO-8859-9). Le Web App Firewall prend en charge tous les caractères du jeu de caractères ISO-8859-9, qui inclut toutes les lettres utilisées en turc moderne.

  • Unicode (UTF-8). Le Web App Firewall prend en charge certains caractères supplémentaires du jeu de caractères UTF-8, y compris ceux utilisés en russe moderne.

Lors de la configuration du Web App Firewall, vous entrez tous les caractères non ASCII en tant qu’expressions régulières au format PCRE à l’aide du code hexadécimal attribué à ce caractère dans la spécification UTF-8. Les symboles et les caractères du jeu de caractères ASCII normal, auxquels sont affectés des codes simples à deux chiffres dans ce jeu de caractères, reçoivent les mêmes codes dans le jeu de caractères UTF-8. Par exemple, le point d’exclamation (!) , auquel est affecté le code hexadécimal 21 dans le jeu de caractères ASCII, est également hexadécimal 21 dans le jeu de caractères UTF-8. Les symboles et les caractères d’un autre jeu de caractères pris en charge sont associés à un jeu de codes hexadécimaux appariés dans le jeu de caractères UTF-8. Par exemple, la lettre a avec un accent aigu (á) se voit attribuer le code UTF-8 C3 A1.

La syntaxe que vous utilisez pour représenter ces codes UTF-8 dans la configuration du Web App Firewall est “\xNN” pour les caractères ASCII ; “\xNN\xNN” pour les caractères non ASCII utilisés en anglais, russe et turc ; et “\xNN\xNN\xNN” pour les caractères utilisés en chinois, japonais et coréen. Par exemple, si vous voulez représenter un ! dans une expression régulière du Web App Firewall en tant que caractère UTF-8, vous devez taper \x21. Si vous souhaitez inclure un á, vous devez taper \xC3\xA1.

Remarque :

Normalement, vous n’avez pas besoin de représenter les caractères ASCII au format UTF-8, mais lorsque ces caractères peuvent confondre un navigateur Web ou un système d’exploitation sous-jacent, vous pouvez utiliser la représentation UTF-8 du personnage pour éviter cette confusion. Par exemple, si une URL contient un espace, vous pouvez encoder cet espace sous la forme \ x20 pour éviter de confondre certains navigateurs et certains logiciels de serveur Web.

Vous trouverez ci-dessous des exemples d’URL, de noms de champs de formulaire et d’expressions d’objets sécurisés contenant des caractères non ASCII qui doivent être entrés en tant qu’expressions régulières au format PCRE pour être inclus dans la configuration du Web App Firewall. Chaque exemple montre d’abord l’URL, le nom de champ ou la chaîne d’expression, suivi d’une expression régulière au format PCRE correspondant.

  • URL contenant des caractères ASCII étendus.

    URL réelle : http://www.josénuñez.com URL encodée : ^http://www\[.\]jos\\xC3\\xA9nu\\xC3\\xB1ez\[.\]com$

  • Une autre URL contenant des caractères ASCII étendus.

    URL réelle : URL http://www.example.de/trömso.html codée : ^http://www[.]example[.\]de/tr\xC3\xB6mso[.]html$

    Un nom de champ de formulaire contenant des caractères ASCII étendus.

    Nom réel : nome_do_usuário Nom encodé : ^nome_do_usu \ xC3 \ xA1rio$

  • Expression d’objet sécurisée contenant des caractères ASCII étendus.

    Expression non codée [A-Z] {3,6} ¥[1-9\][0-9]{6,6} Expression codée : [A-Z]{3,6}\xC2\xA5[1-9][0-9]{6,6}

Vous pouvez trouver plusieurs tables qui incluent l’ensemble du jeu de caractères Unicode et les encodages UTF-8 correspondants sur Internet. Un site Web utile contenant ces informations est disponible dans le tableau suivant.

http://www.utf8-chartable.de/unicode-utf8-table.pl

Pour que les caractères du tableau de ce site Web s’affichent correctement, une police Unicode appropriée doit être installée sur votre ordinateur. Si ce n’est pas le cas, l’affichage visuel du personnage peut être erroné. Même si vous n’avez pas de police appropriée installée pour afficher un caractère, la description et les codes UTF-8 et UTF-16 de cet ensemble de pages Web sont corrects.

Format de codage de caractères PCRE