Formato de codificación de caracteres PCRE
El sistema operativo Citrix ADC solo admite la entrada directa de caracteres en el conjunto de caracteres ASCII imprimible, caracteres con códigos hexadecimales entre HEX 20 (ASCII 32) y HEX 7E (ASCII 127). Para incluir un carácter con un código fuera de ese rango en la configuración de Web App Firewall, debe escribir su código hexadecimal UTF-8 como expresión regular PCRE.
Muchos tipos de caracteres requieren codificación mediante una expresión regular PCRE si los incluye en la configuración de Web App Firewall como una dirección URL, un nombre de campo de formulario o una expresión de objeto seguro. Entre ellas figuran:
- Caracteres ASCII superior. Caracteres con codificaciones de HEX 7F (ASCII 128) a HEX FF (ASCII 255). Dependiendo del mapa de caracteres utilizado, estas codificaciones pueden referirse a códigos de control, caracteres ASCII con acentos u otras modificaciones, caracteres alfabéticos no latinos y símbolos no incluidos en el conjunto ASCII básico. Estos caracteres pueden aparecer en direcciones URL, nombres de campos de formulario y expresiones de objetos seguros.
-
Caracteres de doble byte. Caracteres con codificaciones que utilizan dos palabras de 8 bytes. Los caracteres de doble byte se utilizan principalmente para representar texto chino, japonés y coreano en formato electrónico. Estos caracteres pueden aparecer en direcciones URL, nombres de campos de formulario y expresiones de objetos seguros.
Caracteres de control ASCII. Caracteres no imprimibles utilizados para enviar comandos a una impresora. Todos los caracteres ASCII con códigos hexadecimales menores a HEX 20 (ASCII 32) entran en esta categoría. Sin embargo, estos caracteres nunca deben aparecer en una dirección URL o en un nombre de campo de formulario y rara vez aparecerán en una expresión de objeto segura.
El dispositivo Citrix ADC no admite todo el conjunto de caracteres UTF-8, sino solo los caracteres que se encuentran en los ocho conjuntos de caracteres siguientes:
-
Inglés EE. UU. (ISO-8859-1). Aunque la etiqueta dice “Inglés EE. UU.”, Web App Firewall admite todos los caracteres del conjunto de caracteres ISO-8859-1, también llamado conjunto de caracteres Latin-1. Este conjunto de caracteres representa completamente la mayoría de las lenguas europeas occidentales modernas y representa todos menos algunos caracteres poco comunes en el resto.
-
Chino tradicional (Big5). El Web App Firewall admite todos los caracteres del conjunto de caracteres BIG5, que incluye todos los caracteres chinos tradicionales (ideogramas) comúnmente utilizados en chino moderno como hablado y escrito en Hong Kong, Macao, Taiwán, y por muchas personas de herencia étnica china que viven fuera de China continental.
-
Chino simplificado (GB2312). El Web App Firewall admite todos los caracteres del juego de caracteres GB2312, que incluye todos los caracteres chinos simplificados (ideogramas) comúnmente utilizados en chino moderno como hablados y escritos en China continental.
-
Japonés (SJIS). El Web App Firewall admite todos los caracteres del conjunto de caracteres Shift-JIS (SJIS), que incluye la mayoría de los caracteres (ideogramas) utilizados comúnmente en el japonés moderno.
-
japonés (EUC-JP). El Web App Firewall admite todos los caracteres del conjunto de caracteres EUC-JP, que incluye todos los caracteres (ideogramas) utilizados comúnmente en el japonés moderno.
-
Coreano (EUC-KR). El Web App Firewall admite todos los caracteres del conjunto de caracteres EUC-KR, que incluye todos los caracteres (ideogramas) utilizados comúnmente en coreano moderno.
-
Turco (ISO-8859-9). El Web App Firewall admite todos los caracteres del conjunto de caracteres ISO-8859-9, que incluye todas las letras utilizadas en el turco moderno.
-
Unicode (UTF-8). El Web App Firewall admite ciertos caracteres más en el conjunto de caracteres UTF-8, incluidos los utilizados en ruso moderno.
Al configurar Web App Firewall, escriba todos los caracteres que no sean ASCII como expresiones regulares de formato PCRE-con el código hexadecimal asignado a ese carácter en la especificación UTF-8. A los símbolos y caracteres del juego de caracteres ASCII normal, al que se le asignan códigos sencillos y de dos dígitos en ese juego de caracteres, se les asignan los mismos códigos en el juego de caracteres UTF-8. Por ejemplo, el signo de exclamación (!), al que se le asigna el código hexadecimal 21 en el juego de caracteres ASCII, también es hexadecimal 21 en el juego de caracteres UTF-8. Los símbolos y caracteres de otro juego de caracteres admitido tienen asignado un conjunto emparejado de códigos hexadecimales en el juego de caracteres UTF-8. Por ejemplo, a la letra a con acento agudo (á) se le asigna el código UTF-8 C3 A1.
La sintaxis que se utiliza para representar estos códigos UTF-8 en la configuración de Web App Firewall es “\ xNN” para caracteres ASCII; “\ xNN\ xNN” para caracteres no ASCII utilizados en inglés, ruso y turco; y “\ xNN\ xNN\ xNN” para caracteres utilizados en chino, japonés y coreano. Por ejemplo, si quiere representar un! en una expresión regular de Web App Firewall como un carácter UTF-8, escriba \x21. Si quiere incluir una á, escriba \xC3\xA1.
Nota:
Normalmente no es necesario representar caracteres ASCII en formato UTF-8, pero cuando esos caracteres pueden confundir un explorador web o un sistema operativo subyacente, puede usar la representación UTF-8 del personaje para evitar esta confusión. Por ejemplo, si una dirección URL contiene un espacio, es posible que quiera codificar el espacio como x20 para evitar confundir ciertos exploradores y software de servidor web.
A continuación se muestran ejemplos de direcciones URL, nombres de campos de formulario y expresiones de objetos seguros que contienen caracteres no ASCII que deben escribirse como expresiones regulares de formato PCRE-para incluirlos en la configuración de Web App Firewall. Cada ejemplo muestra primero la dirección URL real, el nombre de campo o la cadena de expresión, seguida de una expresión regular de formato PCRE-para ello.
-
Una URL que contiene caracteres ASCII extendidos.
URL real: URL
http://www.josénuñez.com
codificada:^http://www\[.\]jos\\xC3\\xA9nu\\xC3\\xB1ez\[.\]com$
-
Otra URL que contiene caracteres ASCII extendidos.
URL real: URL
http://www.example.de/trömso.html
codificada:^http://www[.]example[.\]de/tr\xC3\xB6mso[.]html$
Nombre de campo de formulario que contiene caracteres ASCII extendidos.
Nombre real: Nome_do_usuário Nombre codificado: ^nome_do_usu\ xC3\ xA1rio$
-
Expresión de objeto seguro que contiene caracteres ASCII extendidos.
Expresión sin codificar [A-Z]{3,6} ¥[1-9\][0-9]{6,6} Expresión codificada: [A-Z]{3,6}\ xC2\ xA5 [1-9] [0-9] {6,6}
Puede encontrar varias tablas que incluyen todo el conjunto de caracteres Unicode y codificaciones UTF-8 coincidentes en Internet. Un sitio web útil que contiene esta información está disponible en la siguiente tabla.
http://www.utf8-chartable.de/unicode-utf8-table.pl
Para que los caracteres de la tabla de este sitio web se muestren correctamente, debe tener instalada en el equipo una fuente Unicode adecuada. Si no lo hace, la visualización visual del carácter puede ser un error. Aunque no tenga instalada una fuente adecuada para mostrar un carácter, la descripción y los códigos UTF-8 y UTF-16 en este conjunto de páginas web son correctos.