2012-04-26 43 views
5

例如,我有一個Javascript-powered表單創建工具。您可以使用鏈接添加html元素(如輸入字段)和TinyMCE來編輯文本。這些通過一個自動保存功能保存,在特定事件的後臺執行AJAX調用。用Javascript編輯和保存用戶HTML - 它有多安全?

被調用的保存函數會執行數據庫保護,但我想知道用戶是否可以操縱DOM來添加任何他想要的內容(如自定義HTML或不需要的腳本)。

這樣安全嗎,如果有的話?

首先想到的是,我應該搜索並從接收到的html代碼中刪除任何內嵌javascript。

使用PHP,JQuery,Ajax。

+0

所有的答案似乎是正確的,但我會與社區Upvote計數爲最好的。謝謝大家! – 2012-04-26 09:08:48

回答

5

不安全。你可以永遠不要相信客戶端。即使是新手也可以在客戶端修改DOM,例如安裝Firebug for Firefox。

儘管可以接受來自客戶端的HTML,但請確保使用PHP在服務器端正確驗證和消毒。

+0

如果您需要清理用戶輸入的HTML,這是一個相當不錯的庫:http://htmlpurifier.org/ – CD001 2012-04-26 13:25:03

1

您是否將完整的inline-html保存在數據庫中? 如果是這樣,請嘗試重新制作所有內容,並只將相關數據保存到後端。 所有領域也應該控制,如果他們以預期的方式收到。

所有inline-js都很容易刪除。

你可以從來沒有相信用戶!

1

絕對不安全,除非您採取措施使其安全無疑。 StackOverflow允許特定的標籤,過濾,以便用戶不能做惡性事物。你肯定會需要做類似的事情。

我會選擇對輸入服務器端進行清理,以便每個人都得到他們的輸入消毒,無論他們是否阻止了腳本。使用這樣的:http://www.phpclasses.org/package/3746-PHP-Remove-unsafe-tags-and-attributes-from-HTML-code.htmlhttp://grom.zeminvaders.net/html-sanitizer與AJAX實施將是一個很好的解決方案

+0

對於提供的解決方案 – 2012-04-26 09:09:16