我使用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