Web安全攻防从入门到精通
上QQ阅读APP看书,第一时间看更新

1.7
Unicode编码

Unicode是一种为支持全世界所使用的各种编写系统而设计的字符编码标准,它采用各种编码方案,其中一些可用于表示Web应用程序中的不常见字符。

16位Unicode编码的工作原理与URL编码类似。通过HTTP进行传输,16位Unicode编码的字符以“%u”为前缀,其后是这个字符的十六进制Unicode码点,如下所示:

%u2215代表/;

%u00e9代表é。

UTF-8是一种长度可变的编码标准,它使用一个或几个字节表示每个字符。通过HTTP进行传输,UTF-8编码的多字节字符以%为前缀,其后用十六进制表示每个字节,如下所示:

%c2%a9代表©;

%e2%89%a0代表≠。

攻击Web应用程序时之所以要用到Unicode编码,主要是因为有时会用它来破坏输入确认机制。如果输入过滤阻止了某些恶意表达式,但随后处理输入的组件识别Unicode编码,就可以使用各种标准与畸形Unicode编码避开过滤。

Unicode中文互转如图1.18所示。

图1.18 Unicode中文互转