我的网站上用了 FCKeditor 网页在线编辑器,最近服务器上有病毒,估计是上传漏网洞。对会员上传的内容我是用下面的函数过滤的,不知道是不是把不安全的代码全地滤了?function htmlcode($message, $htmlcodeon=true) {
if (!$htmlcodeon) {
return strip_tags($message);
} $search = array ("'<script[^>]*?>.*?</script>'si", // 去掉 javascript
"'javascript'si", // 去掉 javascript字符串
"' on'si", // 去掉 javascript onxx事件
"'<form[^>]*?>.*?</form>'si", // 去掉 form
"'<iframe[^>]*?>.*?</iframe>'si", // 去掉 iframe
"'<frameset[^>]*?>.*?</frameset>'si", // 去掉 frameset
"'<frame[^>]*?>.*?>'si", // 去掉 frame
"'<object[^>]*?>.*?</object>'si", // 去掉 object
"'<applet[^>]*?>.*?</applet>'si", // 去掉 applet
"'<embed[^>]*?>.*?>'si", // 去掉 embed
"'([\r\n])[\s]+'", // 去掉空白字符
"'&(quot|#34);'i", // 替换 HTML 实体
"'&(amp|#38);'i",
"'&(lt|#60);'i",
"'&(gt|#62);'i",
"'&(iexcl|#161);'i",
"'&(cent|#162);'i",
"'&(pound|#163);'i",
"'&(copy|#169);'i");
$replace = array ("",
"",
" o".chr(0)."n",
"",
"",
"",
"",
"",
"",
"",
"\\1",
"\"",
"&",
"<",
">",
chr(161),
chr(162),
chr(163),
chr(169));
$message = preg_replace ($search, $replace, $message); return $message;
}
if (!$htmlcodeon) {
return strip_tags($message);
} $search = array ("'<script[^>]*?>.*?</script>'si", // 去掉 javascript
"'javascript'si", // 去掉 javascript字符串
"' on'si", // 去掉 javascript onxx事件
"'<form[^>]*?>.*?</form>'si", // 去掉 form
"'<iframe[^>]*?>.*?</iframe>'si", // 去掉 iframe
"'<frameset[^>]*?>.*?</frameset>'si", // 去掉 frameset
"'<frame[^>]*?>.*?>'si", // 去掉 frame
"'<object[^>]*?>.*?</object>'si", // 去掉 object
"'<applet[^>]*?>.*?</applet>'si", // 去掉 applet
"'<embed[^>]*?>.*?>'si", // 去掉 embed
"'([\r\n])[\s]+'", // 去掉空白字符
"'&(quot|#34);'i", // 替换 HTML 实体
"'&(amp|#38);'i",
"'&(lt|#60);'i",
"'&(gt|#62);'i",
"'&(iexcl|#161);'i",
"'&(cent|#162);'i",
"'&(pound|#163);'i",
"'&(copy|#169);'i");
$replace = array ("",
"",
" o".chr(0)."n",
"",
"",
"",
"",
"",
"",
"",
"\\1",
"\"",
"&",
"<",
">",
chr(161),
chr(162),
chr(163),
chr(169));
$message = preg_replace ($search, $replace, $message); return $message;
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货