现在用户在前台提交内容的时候,一般都会使用html编辑器,不仅丰富了提交内容,而且能够带来更好的用户体验度,但是这样做的危险就是有些用户会提交恶意html代码和其他非法字符,可能会造成页面的混乱,用上下面这个过滤函数你就可以高枕无忧了。。。
看下面php代码:
-
php
-
function filter($str)
-
{
-
$farr = array(
-
"/\s+/", //过滤多余的空白
-
"/<(\/?)(script|i?frame|style|html|body|title|link|meta|\?|\%)([^>]*?)>/isU", //过滤 script等恶意代码,还可以加入object的过滤flash
-
"/(<[^>]*)on[a-zA-Z]+\s*=([^>]*>)/isU", //过滤javascript的on事件
-
);
-
$tarr = array(
-
" ",
-
"<\\1\\2\\3>", //如果要直接清除不安全的标签,这里可以留空
-
"\\1\\2",
-
);
-
$str = preg_replace( $farr,$tarr,$str);
-
return $str;
-
}
-
//小小演示下
-
echo filter("");
-
?>
运行结果:<script>alert('www.itmop.com'></script>
看到结果了吧,很轻松解决安全危机。。。