php 過濾危險html代碼
更新時間:2009年06月29日 23:28:41 作者:
用PHP過濾html里可能被利用來引入外部危險內容的代碼。有些時候,需要讓用戶提交html內容,以便豐富用戶發(fā)布的信息,當然,有些可能造成顯示頁面布局混亂的代碼也在過濾范圍內。
#用戶發(fā)布的html,過濾危險代碼
function uh($str)
{
$farr = array(
"/\s+/", //過濾多余的空白
"/<(\/?)(scripti?framestylehtmlbodytitlelinkmeta\?\%)([^>]*?)>/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;
}
復制代碼 代碼如下:
function uh($str)
{
$farr = array(
"/\s+/", //過濾多余的空白
"/<(\/?)(scripti?framestylehtmlbodytitlelinkmeta\?\%)([^>]*?)>/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;
}

