Citrix ADC

PCRE字符编码格式

Citrix ADC操作系统支持direct只在可打印ASCII字符集中输入字符——十六进制编码在HEX 20 (ASCII 32)和HEX 7E (ASCII 127)之间的字符。要在Web应用程序防火墙配置中包含超出该范围的代码的字符,必须输入其UTF-8十六进制代码作为PCRE正则表达式。

如果您将许多字符类型作为URL、表单字段名或安全对象表达式包含在Web应用程序防火墙配置中,则许多字符类型需要使用PCRE正则表达式进行编码。它们包括:

  • Upper-ASCII字符。编码从HEX 7F (ASCII 128)到HEX FF (ASCII 255)的字符。根据所使用的字符映射,这些编码可以引用控制码、带有重音或其他修改的ASCII字符、非拉丁字母字符以及基本ASCII集中不包括的符号。这些字符可以出现在url、表单字段名和安全对象表达式中。
  • 双字节字符。使用两个8字节字进行编码的字符。双字节字符主要用于表示电子格式的中文、日语和韩语文本。这些字符可以出现在url、表单字段名和安全对象表达式中。

    ASCII控制字符。用于向打印机发送命令的不可打印字符。所有十六进制编码小于HEX 20 (ASCII 32)的ASCII字符都属于这一类。但是,这些字符绝对不能出现在URL或表单字段名中,也很少出现在安全的对象表达式中。

Citrix ADC设备不支持整个UTF-8字符集,但只支持以下八个字符集中的字符:

  • 英文美国(ISO-8859-1)。虽然标签上写着“English US”,但Web应用防火墙支持ISO-8859-1字符集(也称为Latin-1字符集)中的所有字符。这个字符集完全代表了大多数现代西欧语言,并代表了其他语言中除了少数不常见的字符之外的所有字符。

  • 繁体中文(大五)。Web应用防火墙支持BIG5字符集中的所有字符,该字符集包括香港、澳门、台湾以及居住在中国大陆以外的许多华裔人士在现代汉语中常用的口语和书面语中的所有繁体字(表意文字)。

  • (GB2312)。Web应用防火墙支持GB2312字符集中的所有字符,包括中国大陆常用的现代汉语口语和书面语中的所有简体汉字(表意文字)。

  • 日本(SJIS)。Web应用防火墙支持Shift-JIS (SJIS)字符集中的所有字符,其中包括现代日语中常用的大多数字符(表意文字)。

  • 日本(EUC-JP)。Web应用防火墙支持EUC-JP字符集中的所有字符,其中包括现代日语中常用的所有字符(表意文字)。

  • 韩国(EUC-KR)。Web应用防火墙支持EUC-KR字符集中的所有字符,其中包括现代韩语中常用的所有字符(表意文字)。

  • 土耳其(iso - 8859 - 9)。Web应用防火墙支持ISO-8859-9字符集中的所有字符,其中包括现代土耳其语中使用的所有字母。

  • Unicode (utf - 8)。Web应用防火墙支持UTF-8字符集中的更多字符,包括现代俄语中使用的字符。

在配置Web应用程序防火墙时,使用UTF-8规范中分配给该字符的十六进制代码,将所有非ascii字符输入为pcre格式的正则表达式。普通ASCII字符集中的符号和字符(在该字符集中被分配单个两位数代码)在UTF-8字符集中被分配相同的代码。例如,感叹号(!)在ASCII字符集中被赋值为十六进制代码21,在UTF-8字符集中也是十六进制21。来自其他受支持字符集的符号和字符在UTF-8字符集中分配了一组成对的十六进制代码。例如,带有重音的字母a (á)被分配为UTF-8代码C3 A1。

在Web应用防火墙配置中,用于表示这些UTF-8代码的语法是ASCII字符的“\xNN”;“\xNN\xNN”用于英语、俄语和土耳其语中使用的非ascii字符;“\xNN\xNN\xNN”用于中文、日语和韩语字符。例如,如果你想表示一个!在Web应用防火墙中,正则表达式是UTF-8字符,你可以输入\x21。如果您想包含á,则键入\xC3\xA1。

注意:

通常不需要以UTF-8格式表示ASCII字符,但是当这些字符可能使web浏览器或底层操作系统感到困惑时,可以使用字符的UTF-8表示来避免这种混淆。例如,如果URL包含空格,您可能希望将空格编码为\x20,以避免混淆某些浏览器和web服务器软件。

下面是url、表单字段名和安全对象表达式的示例,它们包含必须作为pcre格式正则表达式输入的非ascii字符,以便包含在Web应用程序防火墙配置中。每个示例首先显示实际的URL、字段名或表达式字符串,然后显示它的pcre格式正则表达式。

  • 包含扩展ASCII字符的URL。

    实际地址:http://www.josenunez.com编码的URL:^ http://www \[。\]乔斯\ \ xC3 \ \ xA9nu \ \ xC3 \ \ xB1ez \[。\]com美元

  • 另一个包含扩展ASCII字符的URL。

    实际地址:http://www.example.de/tromso.html编码的URL:^ http://www[]例子de / tr \ xC3 \[。\]xB6mso html美元(。)

    包含扩展ASCII字符的表单字段名。

    实际名称:nome_do_usuário编码名称:^nome_do_usu\xC3\xA1rio$

  • 包含扩展ASCII字符的安全对象表达式。

    未编码表达式[a - z]{3、6}¥[1 - 9][0 - 9]{6 6}编码表达式:[a - z]{3、6}\ xC2 \ xA5 [1 - 9] [0 - 9] {6 6}

您可以在Internet上找到几个包含整个Unicode字符集和匹配的UTF-8编码的表。下表提供了一个包含这些信息的有用网站。

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

若要正确显示本网站表格中的字符,您的计算机上必须安装适当的Unicode字体。如果不这样做,字符的视觉显示可能是错误的。即使你没有安装合适的字体来显示字符,这组网页上的描述和UTF-8和UTF-16代码也是正确的。

PCRE字符编码格式