sbf123官网

关于跨站脚本漏洞攻击

国内不少论坛都存在跨站脚本漏洞,国外也很多这样的例子,甚至Google也出现过,不过在12月初时修正了。(编者注:关于跨站脚本漏洞攻击,读者可参阅《详解XSS跨站脚本攻击》)。跨站攻击很容易就可以构造,而且非常隐蔽,不易被查觉。
如何攻击,在此不作说明,主要谈谈如何防范。首先,跨站脚本攻击都是由于对用户的输入没有进行严格的过滤造成的,所以我们必须在所有数据进入我们的网站和数据库之前把可能的危险拦截。针对非法的HTML代码包括单双引号等,可以使用htmlentities()
。 <?php$str = “A ‘quote’ is <b>bold</b>”;// Outputs: A ‘quote’ is
lt;bgt;boldlt;/bgt;echo htmlentities($str);// Outputs: A
#039;quote#039; is lt;bgt;boldlt;/bgt;echo htmlentities($str,
ENT_QUOTES);?> 这样可以使非法的脚本失效。
但是要注意一点,htmlentities()默认编码为
ISO-8859-1,如果你的非法脚本编码为其它,那么可能无法过滤掉,同时浏览器却可以识别和执行。这个问题我先找几个站点测试后再说。
这里提供一个过滤非法脚本的函数:function RemoveXSS($val) { // remove all
non-printable characters. CR(0a) and LF(0b) and TAB(9) are allowed //
this prevents some character re-spacing such as <javascript> // note
that you have to handle splits with , , and later since they *are*
allowed in some inputs $val =
preg_replace(‘/([x00-x08][x0b-x0c][x0e-x20])/’, ”, $val); //
straight replacements, the user should never need these since they’re
normal characters // this prevents like <IMG
SRC=#X40#X61#X76#X61#X73#X63#X72#X69#X70#X74#X3A#X61
_#X6C#X65#X72#X74#X28#X27#X58#X53#X53#X27#X29> $search =
‘abcdefghijklmnopqrstuvwxyz’; $search .= ‘ABCDEFGHIJKLMNOPQRSTUVWXYZ’;
$search .= ‘1234567890!@#$%^*()’; $search .= ‘~`”;:? /={}[]-_|”;

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章