用php過濾危險html代碼的函數(shù)
更新時間:2008年07月22日 00:29:54 作者:
用PHP過濾html里可能被利用來引入外部危險內(nèi)容的代碼。有些時候,需要讓用戶提交html內(nèi)容,以便豐富用戶發(fā)布的信息,當(dāng)然,有些可能造成顯示頁面布局混亂的代碼也在過濾范圍內(nèi)。
#用戶發(fā)布的html,過濾危險代碼
function uh($str)
{
$farr = array(
"/\\s+/", //過濾多余的空白
"/<(\\/?)(scrīpt|i?frame|style|html|body|title|link|meta|\\?|\\%)([^>]*?)>/isU", //過濾 <scrīpt 等可能引入惡意內(nèi)容或惡意改變顯示布局的代碼,如果不需要插入flash等,還可以加入<object的過濾
"/(<[^>]*)on[a-zA-Z]+\\s*=([^>]*>)/isU", //過濾javascrīpt的on事件
);
$tarr = array(
" ",
"<\\\\1\\\\2\\\\3>", //如果要直接清除不安全的標(biāo)簽,這里可以留空
"\\\\1\\\\2",
);
$str = preg_replace( $farr,$tarr,$str);
return $str;
}
function uh($str)
{
$farr = array(
"/\\s+/", //過濾多余的空白
"/<(\\/?)(scrīpt|i?frame|style|html|body|title|link|meta|\\?|\\%)([^>]*?)>/isU", //過濾 <scrīpt 等可能引入惡意內(nèi)容或惡意改變顯示布局的代碼,如果不需要插入flash等,還可以加入<object的過濾
"/(<[^>]*)on[a-zA-Z]+\\s*=([^>]*>)/isU", //過濾javascrīpt的on事件
);
$tarr = array(
" ",
"<\\\\1\\\\2\\\\3>", //如果要直接清除不安全的標(biāo)簽,這里可以留空
"\\\\1\\\\2",
);
$str = preg_replace( $farr,$tarr,$str);
return $str;
}
您可能感興趣的文章:
相關(guān)文章
php 網(wǎng)頁播放器用來播放在線視頻的代碼(自動判斷并選擇視頻文件類型)
其實這里的php 視頻播放代碼基本上常見的視頻格式都支持,用正則匹配文件擴展名,并根據(jù)文件擴展名的不同調(diào)用相應(yīng)的在線播放器代碼。2010-06-06利用phpExcel實現(xiàn)Excel數(shù)據(jù)的導(dǎo)入導(dǎo)出(全步驟詳細解析)
本人的這段例程是使用在Thinkphp的開發(fā)框架上,要是使用在其他框架也是同樣的方法,很多人可能不能正確的實現(xiàn)Excel的導(dǎo)入導(dǎo)出,問題基本上都是phpExcel的核心類引用路徑出錯,如果有問題大家務(wù)必要對路勁是否引用正確進行測試2013-11-11php數(shù)據(jù)結(jié)構(gòu)與算法(PHP描述) 快速排序 quick sort
php數(shù)據(jù)結(jié)構(gòu)與算法(PHP描述) 快速排序 quick sort,學(xué)習(xí)php的朋友可以參考下2012-06-06PHP采用get獲取url漢字出現(xiàn)亂碼的解決方法
這篇文章主要介紹了PHP采用get獲取url漢字出現(xiàn)亂碼的解決方法,是很多PHP程序員都曾遇到的問題,非常具有實用價值,需要的朋友可以參考下2014-11-11php+mysql實現(xiàn)數(shù)據(jù)庫隨機重排實例
這篇文章主要介紹了php+mysql實現(xiàn)數(shù)據(jù)庫隨機重排,講述了MySQL的查找及更新等處理技巧,有一定的參考借鑒價值,需要的朋友可以參考下2014-10-10