2012-07-15 137 views
0

理想情況下,我希望允許用戶像編輯tumblr一樣編輯HTML,您可以在瀏覽器中編輯主題HTML。你也得到完全控制。我聽說過諸如html-purifier之類的工具。允許用戶編輯和存儲HTML

除了「淨化」HTML以外,還應採取其他措施。

+1

MySQL與它有什麼關係? – 2012-07-15 21:11:31

+4

這一切都取決於你想讓你的用戶做什麼。你必須提供更多的細節來得到具體的答案。是否有任何與您有關的特定場景?實施淨化方法遇到麻煩嗎? – Lix 2012-07-15 21:13:17

+0

它必須存儲在某處,因此mysql標記。 – 2012-07-15 21:28:12

回答

1

前幾天我問了一個similar question哪些可能對你有幫助。

我會將所有用戶生成的HTML存儲在另一個域/子域中,以避免cookie被竊取並使您的cookie成爲HttpOnly,以便它們無法通過JavaScript進行訪問。您可以在主域名上設置您的Cookie(用於身份驗證等),而無需子域名。另外,您可以使用CSRF令牌來避免自動濫用。

如果你想禁止有害的代碼/ JavaScript,你必須過濾你的HTML,如果你這樣做,你應該白名單所有允許的標籤,而不是黑名單禁止標籤(因爲新的HTML5來了,甚至瀏覽器 - 具體的)。

另一個挑戰是過濾屬性(像onclick這樣的事件屬性允許執行JavaScript)。

另一個用戶也呼籲我注意Content Security Policy這是一個頭(但不幸的是只有少數瀏覽器支持)。

但這取決於您想給用戶多少自由。

相關問題