PHP技巧:php過濾危險html代碼

  用php(做為現在的主流開發語言)過濾html裡可能被利用來引入外部危險內容的代碼。有些時候,需要讓用戶提交html內容,以便豐富用戶發佈的信息,當然,有些可能造成顯示頁面佈局混亂的代碼也在過濾范圍內。


以下是引用片段:
#用戶發佈的html,過濾危險代碼
function uh($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;
}

發佈留言