2009-08-12 42 views
8

對於我的post實體,我在數據庫中存儲了HTML和MARKDOWN(HTML從MARKDOWN轉換而來)。 HTML用於在頁面上呈現,MARKDOWN用於編輯能力(用WMD)。我在存儲到數據庫之前清理HTML。問題是:我是否應該對減價進行清理?或者如果我只將它傳遞給wmd-editor,它就是xss-safe?我應該清理降價嗎?

回答

13

Markdown可以包含任意的HTML;這是明確允許的。所以在發送給Web客戶端之前,您也應該對其進行清理,或者至少將其轉換爲HTML的結果進行清理。

我記得在早期SO可能的一個漏洞是您可以將JS內容放入Markdown中,並且任何編輯您的文章的人都會在預覽中觸發這些腳本。我不知道這是否是固定的。

3

我注意到你在「存儲到數據庫之前清理HTML」,並在下一句中提到了xss-safe。這些都是輸入驗證的兩個不同的方面,你不應該混合起來,並在設計中同時滿足:

  • 您應該安全地將任何用戶輸入到數據庫中,即確保輸入正確轉義(mysql_real_escape_string,存儲過程,ORM庫等)

  • 您應該安全地輸出到HTML/JS(包括WMD輸入),刪除或轉義任何可以轉化爲XSS漏洞和其他不愉快的序列。

至於這個問題,我同意克里斯 - 因爲Markdown可以包含HTML,所以它必須被消毒。

0

只是一個加法:
This question使用大規模殺傷性武器

來到
相關問題