万卷书   首页 > 电脑书籍 > Web服务器 > Web恶意内容入侵分析及应对措施之一
 
   如果Web服务器不能指定使用哪个字符集编码,那么它就不能区分出特殊字符。没有指定字符集编码的Web页面之所以可以在大多数时间中工作良好,这是因为在大多数的字符集编码类别中,同一字符对应一个小于128的字节值。对于大于128的特殊字符,例如“<”,将采用16位字符编码方案处理。一些浏览器能够识别并执行这种编码方案,但同时,攻击者也可能据此使用恶意脚本,使防范难度加大,因为服务器可能完全不能了解哪个字节代表哪个特殊字符。例如,字符集UTF-7为“<”和“>”提供了可选编码,几种流行的浏览器一般将它们看做标记的起始和结束字符。为了不造成服务器和客户端的字符编码的不一致,Web服务器应该明确设置字符集,以确认插入的数据是否为特殊字符编码的后续字节。比如,下面的代码强行设置了页面使用ISO-8859-1字符集编码:


<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<TITLE>HTML SAMPLE</TITLE>
</HEAD>
<BODY>
<P>This is a sample HTML page
</BODY>
</HTML>

上一页