您的位置:首页 > 编程语言 > PHP开发

XSS过滤函数修正版 PHP

2012-06-11 17:49 274 查看
前面这个帖子/article/8648163.html已经介绍了XSS防御的两种方法,但是凡事还是应该以事实为依据,于是我测试了里面提到的两个方法

1.function RemoveXSS($val)

2.function
filter_xss($string, $allowedtags = '')

$testXssString="<span>aaa</span><img SRC=\"javascr
ipt:alert('a');\" />";//aaa<img STYLE=\"background-image: url(javascript:alert('XSS'))\">
echo RemoveXss($testXssString);
//$testXssString=strip_tags($testXssString,"<span><img>");
//echo 'strip_tags:'.$testXssString;
echo filter_xss($testXssString,"<img>");


试验结果是两个方法都不行,实验结果为:
<span>aaa</span><img SRC="javascr ipt:alert('a');" /><br />aaa<img SRC="javascr ipt:alert('a');" />

所以这两个方法有问题,之前引用的帖子说第二种方法靠谱,推荐,但我认为第一种方法比较好,代码也比较清晰,跟踪了代码,发现是他的正则写的少考虑了 ,把它加进去就能过滤了。

个人认为我修正bug后,还有很多情况没考虑到,欢迎大家多提意见,谢谢。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: