-2
我有以下的php XSS过滤器功能:这段代码是否真的XSS证明?
<?php
function xssfilter($inp){
$inp = html_entity_decode(urldecode($inp));
$inp = preg_replace('/!/','',$inp);
if (preg_match('/script|on|xmlns|data/iu',$inp)){
while(preg_match('/script|on|xmlns|data/iu',$inp)){
$inp = preg_replace('/(script)|(on)|(xmlns)|(data)/iu','NO!',$inp);
}
}
return $inp;
}
?>
很明显,你可以在这里上传远程脚本,但我在这里的问题是,如果你可以绕过在某些方面正则表达式?
这个问题听起来像一个琐事问题。 –
看起来写这个函数的人对于如何清理内容没有很好的理解。 URL解码,实体解码,替换感叹号,替换afew关键字......看起来他们只是把问题扔在了问题上,希望它能完成这项工作。 –