PHP技巧:php過(guò)濾危險(xiǎn)html代碼
用PHP過(guò)濾html里可能被利用來(lái)引入外部危險(xiǎn)內(nèi)容的代碼。有些時(shí)候,需要讓用戶提交html內(nèi)容,以便豐富用戶發(fā)布的信息,當(dāng)然,有些可能造成顯示頁(yè)面布局混亂的代碼也在過(guò)濾范圍內(nèi)。
以下是引用片段:#用戶發(fā)布的html,過(guò)濾危險(xiǎn)代碼 function uh($str) { $farr = array( '/s+/',;//過(guò)濾多余的空白 '/<(/?)(script|i?frame|style|html|body|title|link|meta|?|%)([^>]*?)>/isU',; //過(guò)濾 <script 等可能引入惡意內(nèi)容或惡意改變顯示布局的代碼,如果不需要插入flash等,還可以加入<object的過(guò)濾 '/(<[^>]*)on[a-zA-Z]+s*=([^>]*>)/isU',;;;//過(guò)濾javascript的on事件 ); $tarr = array( ' ', '<123>',//如果要直接清除不安全的標(biāo)簽,這里可以留空 '12', );
$str = preg_replace( $farr,$tarr,$str); return $str; }
