2010-07-29 129 views
1

我有一個包含兩個textareas的頁面,其中註冊用戶可以使用HTML代碼填充它們。第一個是TinyMCE(所以HTML被清理),但另一個沒有,因爲我希望代碼插入爲來自其他站點(主要是提供地圖的站點,例如Google Maps,MapMyRace.com等)的嵌入代碼。 。但問題是,其他網站可能會提供不同的標籤,不僅僅是<embed>或。所以我無法剝離標籤,因爲那樣我可能會剝去我不知道其他網站提供的標籤。我將把這兩個textareas中的HTML保存到我的數據庫中,作爲其他頁面的一部分進行檢索和顯示。從textarea清除HTML

您有任何建議可以使此設置更安全嗎?或者我應該禁止在第二個textarea中完全自由地輸入HTML? (或..我讓用戶勾選複選框說:「我接受了我插入代碼的行爲負全部責任」 .. LOL)

您的意見是高度讚賞:)

感謝

回答

1

簡短的回答是:免費的HTML是不安全的,必須避免。沒有任何東西阻止您的用戶創建iframe,將用戶重定向到一些有害頁面,或者在您的頁面上放置廣告或損壞您的網站。

我最喜歡的解決方法是允許用戶在文本框中粘貼一個鏈接(沒有「在頁面上嵌入iframe代碼」)。然後,我使用正則表達式來識別粘貼的鏈接(它是youtube,Bing地圖,...),並從粘貼鏈接創建HTML,這對於大多數iframe提供者來說並不複雜。它對你來說更重要,它限制了你可以放在頁面上的API,但它是安全的。

1

讓你的用戶使用任意的HTML是危險的。你可能想要有一個黑色和白色的標籤列表,你不允許和允許(分別)。