對於我的post實體,我在數據庫中存儲了HTML和MARKDOWN(HTML從MARKDOWN轉換而來)。 HTML用於在頁面上呈現,MARKDOWN用於編輯能力(用WMD)。我在存儲到數據庫之前清理HTML。問題是:我是否應該對減價進行清理?或者如果我只將它傳遞給wmd-editor,它就是xss-safe?我應該清理降價嗎?
8
A
回答
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使用大規模殺傷性武器
相關問題
- 1. 我應該降級VisualStudio for Box2D嗎?
- 2. Vim中的降價清單
- 3. 表內的降價清單
- 4. PHP - 我應該在magic qotes關閉時清理字符串嗎?
- 5. 我應該在PHP中驗證/清理$ _SESSION變量嗎?
- 6. 我應該清理託管CMS的HTML標記嗎?
- 7. 我應該將輸入清理爲參數化查詢嗎?
- 8. 我應該相信LinqDataSource正確清理嗎?
- 9. 我應該如何清理symfony2緩存
- 10. 處理與降價(下頁)
- 11. 我應該從EventLogReader中處理EventRecords嗎?
- 12. MySQL:我應該打擾整理嗎?
- 13. 我應該使用異步處理嗎?
- 14. 清理用戶使用代碼創建降價
- 15. 使用flexmark-java的清潔降價
- 16. EF Code First Migrations - 我應該在降級後刪除遷移嗎?
- 17. 我的自定義組件應該從TDataModule下降嗎?
- 18. 降價,使降價的處理塊水平的html內從
- 19. 降價解析代碼應該放在Django應用程序中?
- 20. 在設置innerHtml之前,應該「清理」一個元素嗎?
- 21. 我應該在Web應用程序中放置清理代碼?
- 22. 我應該在JApplet中編寫我的清理任務?
- 23. mvvm-light:我們應該合併定位器中的清理方法嗎?
- 24. 如果在if語句中使用$ _POST數據,我應該清理嗎?
- 25. 使用PHP PDO時,我應該清理/過濾用戶輸入和輸出嗎?
- 26. 我應該處理
- 27. 降價算法:依次輸入應該返回任何
- 28. 我應該在使用reloadData之前清除表視圖嗎?
- 29. 我應該將基礎活動添加到清單文件嗎?
- 30. 我應該自己清除fsCachedData文件夾嗎?