1. 程式人生 > >使用HTML Purifier防止xss攻擊

使用HTML Purifier防止xss攻擊

下載地址:http://htmlpurifier.org/download
在程式設計開發時安全問題是及其重要的,對於使用者提交的資料要進行過濾,XSS就是需要重視的一點,先說一下什麼是XSS,簡單來說就是使用者提交資料(例如發 表評論,發表日誌)時往Web頁面裡插入惡意javascript程式碼例如死迴圈,瘋狂的alert,這還不算還可能會修改頁面頁面上的html元素(例 如登入表單的action),這樣當用戶瀏覽該頁之時,嵌入其中Web裡面的程式碼會被執行,從而達到使用者的特殊目的。
HTML Purifier是基於php 5所編寫的HTML過濾器,支援自定義過濾規則,還可以把不標準的HTML轉換為標準的HTML。

function HtmlPurifier($data){
    require_once "__STATIC__/plugin/htmlpurifier/linrary/HTMLPurifier.auto.php";
    $config = HTMLPurifier_Config::createDefault();
    //設定保留標籤
    $config->set('Core.Encoding','UTF-8');
    $config->set('HTML.Allowed','div,b,strong,i,em,a[href|title],ul,ol,lo,p[style],br,span[style],img[width|height|alt|src]');
    $config-set('CSS.AllowedProperties','font,font-size,font-weight,font-style,font-family,text-decoration,padding-left,color,background-color,text-align');
    $config->set('HTML.TargetBlank',TRUE);
    $obj = new HTMLPurifier($config);
    //執行過濾
    return $obj->purify($data);
}

詳細過濾參看官方說明:http://htmlpurifier.org/live/smoketests/xssAttacks.php