2012-11-06 97 views
5

我想允許有限用戶可以在我的論壇中使用的HTML標籤白名單。所以,我已經配置了HTML淨化器像這樣:HTML淨化器 - 更改默認允許的HTML標籤配置

$config = HTMLPurifier_Config::createDefault(); 
$config->set('HTML.Allowed', 'p,a[href|rel|target|title],img[src],span[style],strong,em,ul,ol,li'); 
$purifier = new HTMLPurifier($config); 

我想知道是,請問HTML淨化器的默認配置仍然適用,公認的HTML標籤的數量減少之外做我需要手動重新設置每個可能的配置參數?

此外,我應該以任何方式調整默認配置以保持安全嗎?我對整個XSS保護新手不熟悉,對於HTML Purifier來說是新手,並沒有發現手冊給出了很多「基本」技巧和提示。

回答

0

爲什麼不只是使用DOM解析器並檢查標記類型是否在允許的HTML標記白名單中?

將輸入轉換爲DOM節點列表,您應該可以遍歷所有DOM節點並檢查是否允許該類型。 php.net有很好的例子說明了如何做到這一點,如你試圖解決輸入消毒問題。

點擊此處瞭解詳情: http://php.net/manual/en/class.domdocument.php

+0

爲什麼要重新發明輪子? HTMLPurifier是一個很好的成熟產品。 – rjmunro