PHP过滤JS字符串函数
2017-09-04 PHP常用方法 757 WGE
在PHP开发中,我们通常会对用户提交的内容进行过滤,尤其是针对XSS攻击时,例如我们在做一个留言板功能时,可能会有不法分子通过留言板提交一条js函数
<spcrit>alert(1);</script>
可能你的页面就会出现弹窗,这是我们需要对这条留言进行过滤
/*
* 对字符串进行过滤
* @param String $str 字符串
**/
function stripHTML($str){
$pattern=array (
"'<script[^>]*?>.*?</script>'si",
"'<style[^>]*?>.*?</style>'si",
"'<[\/\!]*?[^<>]*?>'si",
"'([\r\n])[\s]+'",
"'&(quot|#34);'i",
"'&(amp|#38);'i",
"'&(lt|#60);'i",
"'&(gt|#62);'i",
"'&(nbsp|#160);'i",
"'&(iexcl|#161);'i",
"'&(cent|#162);'i",
"'&(pound|#163);'i",
"'&(copy|#169);'i",
"'(\d+);'e"
);
$replace=array ('', '', "\\1", '', "&", "<", ">", ' ', chr(161), chr(162), chr(163), chr(169), "chr(\\1)");
return preg_replace($pattern, $replace, $str);
}