我使用HttpUtility.HtmlEncode
來消毒用戶輸入以防止XSS攻擊。我的問題是,HtmlEncode
將特殊字符(如ü
)轉換爲它們的Html等效代碼。我找不到關於它做什麼和不編碼的文檔。然後爲了正確顯示這個給用戶我需要HtmlDecode
它。使用HttpUtility.HtmlEncode和處理特殊字符/變音符號等
2個問題:
如何
HtmlEncode
決定它需要編碼理應有效字符像ü
而不是其他Unicode字符像標準的英文字母字符。HtmlEncode
是否對所有非ascii字符進行編碼?什麼是防止腳本標記但允許特殊字符(如變音符號)而不創建特殊忽略列表的最佳方法?是否使用
HtmlDecode
暴露的危險,因爲它被轉換回潛在的惡意的JavaScript
「我的問題是,HtmlEncode轉換特殊字符」爲什麼這是一個問題?您的字符串應該顯示爲HTML源代碼(然後HtmlEncode是正確的)或顯示爲純文本(然後不使用HtmlEncode) – 2014-11-04 12:26:09
它不會將英文字母編碼爲其HTML代碼.. – user48408 2014-11-04 13:13:27
它不需要。請告訴我們您如何處理字符串以及它如何顯示給最終用戶。 – 2014-11-04 13:16:42