2014-01-09 64 views
1

感謝您檢查允許用戶添加後與原始的HTML將使用HTMLPurifier

在我的社交網站,我使用summernote的評論和帖子被淨化的風險。那麼我使用htmlpurifier來清理用戶帖子。但我想讓用戶從hulkshare中添加音樂。因爲summernote不支持它,我想通過在summernote的codeview中粘貼來自hulkshare的iframe代碼來允許用戶這樣做。

請爲htmlpurifire足夠強大,以保護我的網站從用戶的XSS攻擊。

+0

澄清是'HTMLPurifier'第一。這個問題與用戶發佈的HTML相關嗎或者讓用戶發佈'hulkshare'片段? –

+0

HTMLPurifier對此很好,但它是否足夠安全取決於您編寫的過濾規則。 – halfer

+0

最好的解決方案是解析自己預定義的代碼並將其渲染爲你想要的。您將獲得對用戶輸入和渲染的更多控制。 – luxcem

回答

3

HTMLPurifier邏輯將消除任何的iframe,所以它不能正常工作。爲什麼不創建一個新的HTML標籤,特定於您的網站。喜歡的東西:

<yourwebsite-music source="hulkshare" id="1234"/> 

然後,設置HTMLpurifier離開這個標籤和您的使用PHP(用一個iframe更換標籤)自己渲染。這樣做也可以讓您稍後添加其他媒體資源,並且可以讓您更好地控制用戶帖子中發生的情況。

+0

我已經有一個Iframe工作。我用它來允許用戶上傳YouTube視頻。我使用phpQuery選擇的IFRAME(一個iframe中被允許用於每個柱)保存在變量,在剩餘的運行HTML淨化器,條帶向上從Ifram任何腳本,並插入它回到HTML。感謝您的建議。 –

+0

我會做自定義標籤的用戶喜歡@音樂urlHere或{音樂,網址}和解析它在後端 –

+0

那是一個很好的做法,但我使用summernote所以它會renderd @到HTML代碼。 –

0

有許多HTML過濾庫,在其中您可以指定禁止/允許的標籤。我建議你看看他們,並選擇最適合你的情況。