使用HTMLPurifier防止跨站攻擊(XSS)


在編程開發時安全問題是及其重要的,對於用戶提交的數據要進行過濾,XSS就是需要重視的一點,先說一下什么是XSS,簡單來說就是用戶提交數據(例如發 表評論,發表日志)時往Web頁面里插入惡意javascript代碼例如死循環,瘋狂的alert,這還不算還可能會修改頁面頁面上的html元素(例 如登錄表單的action),這樣當用戶瀏覽該頁之時,嵌入其中Web里面的代碼會被執行,從而達到用戶的特殊目的。

    在使用PHP開發時,可以使用htmlspecialchars將用戶提交過來的數據轉換使之原樣顯示,但是這樣一來會造成一些弊端,比如用戶上傳的圖片 無法顯示,html標簽不會起作用,沒有任何樣式。解決方案就是可以使用UBB標簽或者自定義標簽來實現,要么就是自己寫正則去過濾,但是防不勝防,並且 這樣在處理起來有些繁瑣。下載重點介紹一個開源的HTMLPurifier,這是一個符合W3C標准的HTML過濾器,可以生成標准的HTML代碼,並且 有很多的自定義配置,我更關注的是可以過濾掉javascript代碼,有效的防止XSS!

    閑話少說,放出簡單代碼示例和下載包:

  1. <?php
  2. //引入htmlPurifier去除XSS跨站攻擊代碼 生成安全的html代碼        
  3. require_once('./htmlpurifier/library/HTMLPurifier.includes.php');
  4. $config HTMLPurifier_Config::createDefault();   //創建默認配置
  5. $purifier = new HTMLPurifier($config);   //實例化 並傳入默認配置 ($config為空也可)
  6. $safedata $purifier->purify($_POST['content']); //開始過濾 返回過濾后的字符串
  7. echo '<pre>';
  8. print_r($safedata);
  9. ?>

  htmlpurifier解決XSS


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM