天天看點

php過濾危險html代碼

用PHP過濾html裡可能被利用來引入外部危險内容的代碼。有些時候,需要讓使用者送出html内容,以便豐富使用者釋出的資訊,當然,有些可能造成顯示頁面布局混亂的代碼也在過濾範圍内。

#使用者釋出的html,過濾危險代碼
functionuh($str)
{
$farr = array(
"//s+/",                                                                                            //過濾多餘的空白
"/<(//?)(script|i?frame|style|html|body|title|link|meta|/?|/%)([^>]*?)>/isU",  //過濾 <script 等可能引入惡意内容或惡意改變顯示布局的代碼,如果不需要插入flash等,還可以加入<object的過濾
"/(<[^>]*)on[a-zA-Z]+/s*=([^>]*>)/isU",                                      //過濾javascript的on事件
);
$tarr = array(
" ",
"<//1//2//3>",           //如果要直接清除不安全的标簽,這裡可以留白
"//1//2",
);
$str = preg_replace( $farr,$tarr,$str);
return$str;
}