2012-07-05 46 views
1

我剛剛開始使用HTML Purifier http://htmlpurifier.org來過濾來自所見即所得編輯器的內容。內容將顯示回同一組中的用戶或其他用戶。系統上還有其他組,並且數據完整性非常重要。HTML淨化器過濾器入站或出站或兩者?

我正在使用PHP,內容存儲在MySQL數據庫中。

HTML Purifier使用了大量的處理器能力,所以我只想在入站內容中使用它,並直接從數據庫中顯示出站內容,而不使用任何過濾器。聽起來很簡單,它被過濾了,所以它應該是安全的,但我不是100%肯定的,它是安全的嗎?

入站允許列表 'p [style],strong,em,u,h1,h2,h3,h4,h5,h6,li,ol,ul,span [style],div [style],br ,ins,del'

編輯:我發現網站建議在http://htmlpurifier.org/docs/enduser-slow.html這樣做,但我想在這裏提出一些意見,因爲它的重要性很高。

+0

看一看OWASP的[XSS預防備忘單](https://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sheet)。 – Adi 2012-07-05 13:12:43

回答

1

當您將輸入發送到數據庫時對輸入進行清理,或者由於這是一個CPU密集型步驟,您將在每秒幾次瀏覽量時遇到很大的麻煩。但是,您必須確保數據庫中的每一行都被清理過,否則您將在某一天將自己暴露給XSS(檢查每個編輯或添加條目的請求,並考慮數據庫中現有的行)。

小提示:如果您能負擔得起的空間,存儲消毒和未消毒的輸入。如果有一天,你必須改變你的參數或HTMLPurifier有一個主要的0天,你可以更新整個表。但是,非常謹慎的影響,如果你做的這一個日子;)

編輯:確保你允許的風格做什麼,或者只允許饑荒早期預警系統的CSS樣式...

+0

謝謝Ugo,我只在wysiwyg輸入的內容中使用淨化器。其他一切將使用標準的PHP過濾器嚴格剝離和驗證純文本。你會建議在style屬性中允許什麼? – PaulMrG 2012-07-05 12:59:20

+0

沒有什麼比顏色,字體大小,字體重量,背景顏色,文本對齊等。避免位置,頂部,左側,邊緣等... – 2012-07-05 13:01:47