ADC

Formato de codificación de caracteres PCRE

El sistema operativo NetScaler 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 de PCRE.

Muchos tipos de caracteres requieren la codificación mediante una expresión regular de PCRE si los incluye en la configuración de Web App Firewall como URL, nombre de campo de formulario o expresión de objeto seguro. Entre ellas se encuentran:

  • Caracteres ASCII superiores. Caracteres con codificaciones desde HEX 7F (ASCII 128) hasta HEX FF (ASCII 255). Según el mapa de caracteres utilizado, estas codificaciones pueden hacer referencia a códigos de control, caracteres ASCII con acentos u otras modificaciones, caracteres del alfabeto no latino y símbolos no incluidos en el conjunto ASCII básico. Estos caracteres pueden aparecer en URL, nombres de campos de formulario y expresiones de objetos seguros.
  • Caracteres de doble byte. Caracteres con codificaciones que usan dos palabras de 8 bytes. Los caracteres de doble byte se utilizan principalmente para representar texto en chino, japonés y coreano en formato electrónico. Estos caracteres pueden aparecer en URL, nombres de campos de formulario y expresiones de objetos seguros.

    Caracteres de control ASCII. Caracteres no imprimibles que se utilizan para enviar comandos a una impresora. Todos los caracteres ASCII con códigos hexadecimales inferiores a HEX 20 (ASCII 32) entran en esta categoría. Sin embargo, estos caracteres nunca deben aparecer en una URL o en un nombre de campo de formulario, y rara vez aparecerían en una expresión de objeto segura.

El dispositivo NetScaler 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 de EE. UU. (ISO-8859-1). Aunque la etiqueta dice: “Inglés de EE. UU.”, el Web App Firewall admite todos los caracteres del juego de caracteres ISO-8859-1, también denominado conjunto de caracteres Latin-1. Este conjunto de caracteres representa completamente la mayoría de los idiomas modernos de Europa occidental y representa todos los caracteres menos comunes en el resto.

  • Chino tradicional (Big5). Web App Firewall admite todos los caracteres del conjunto de caracteres BIG5, que incluye todos los caracteres chinos tradicionales (ideografías) comúnmente utilizados en el chino moderno tal como se habla y escribe en Hong Kong, Macao, Taiwán y por muchas personas de ascendencia étnica china que viven fuera de China continental.

  • Chino simplificado (GB2312). Web App Firewall admite todos los caracteres del conjunto de caracteres GB2312, que incluye todos los caracteres en chino simplificado (ideogramas) que se utilizan comúnmente en el chino moderno tal como se habla y escribe en China continental.

  • Japonés (SJIS). Web App Firewall admite todos los caracteres del conjunto de caracteres Shift-JIS (SJIS), que incluye la mayoría de los caracteres (ideogramas) que se usan comúnmente en japonés moderno.

  • Japonés (EUC-JP). Web App Firewall admite todos los caracteres del conjunto de caracteres EUC-JP, que incluye todos los caracteres (ideogramas) que se usan comúnmente en japonés moderno.

  • Coreano (EUC-KR). Web App Firewall admite todos los caracteres del conjunto de caracteres EUC-KR, que incluye todos los caracteres (ideogramas) que se utilizan comúnmente en el coreano moderno.

  • Turco (ISO-8859-9). Web App Firewall admite todos los caracteres del conjunto de caracteres ISO-8859-9, que incluye todas las letras usadas en turco moderno.

  • Unicode (UTF-8). El Web App Firewall admite algunos más caracteres del conjunto de caracteres UTF-8, incluidos los que se utilizan en el ruso moderno.

Al configurar Web App Firewall, se escriben todos los caracteres que no son ASCII como expresiones regulares en formato PCRE mediante el código hexadecimal asignado a ese carácter en la especificación UTF-8. A los símbolos y caracteres del conjunto de caracteres ASCII normal, al que se le asignan códigos individuales 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 conjunto de caracteres ASCII, también es hexadecimal 21 en el conjunto de caracteres UTF-8. Los símbolos y caracteres de otro conjunto de caracteres admitidos tienen un conjunto pareado de códigos hexadecimales asignados en el conjunto 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 utiliza para representar estos códigos UTF-8 en la configuración de Web App Firewall es “\xNN” para los caracteres ASCII; “\xNN\xNN” para los caracteres no ASCII utilizados en inglés, ruso y turco; y “\xNN\xNN\xNN” para los caracteres utilizados en chino, japonés y coreano. Por ejemplo, si quieres representar a! en una expresión regular de Web App Firewall como un carácter UTF-8, debe escribir\x21. Si desea incluir un á, debe escribir\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 URL contiene un espacio, puede que desee codificar el espacio como\x20 para no confundir a ciertos navegadores y al software del 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 en formato PCRE para que se incluyan en la configuración de Web App Firewall. En cada ejemplo se muestra primero la URL, el nombre de campo o la cadena de expresión reales, seguidos de una expresión regular en formato PCR.

  • 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. En la siguiente tabla encontrará un sitio web útil que contiene esta información.

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 una fuente Unicode apropiada instalada en el equipo. Si no lo hace, la visualización del personaje puede ser errónea. 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.

Formato de codificación de caracteres PCRE

En este artículo