
上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中文互转