C# 使用HttpUtility.HtmlEncode并处理特殊字符/umlaut等
我正在使用C# 使用HttpUtility.HtmlEncode并处理特殊字符/umlaut等,c#,asp.net,utf-8,ascii,html-encode,C#,Asp.net,Utf 8,Ascii,Html Encode,我正在使用HttpUtility.HtmlEncode清理用户输入,以防止XSS攻击。我的问题是HtmlEncode将像u这样的特殊字符转换为它们的Html等效代码。我找不到关于它编码和不编码的文档。然后为了正确地向用户显示,我需要HtmlDecodeit 2个问题: HtmlEncode如何决定它需要编码一个假定有效的字符,如u,而不是其他unicode字符,如标准英文字母字符。HtmlEncode是否对所有非ascii字符进行编码?防止脚本标记但允许特殊字符(如umlauts)而不创建特殊忽
HttpUtility.HtmlEncode
清理用户输入,以防止XSS攻击。我的问题是HtmlEncode
将像u
这样的特殊字符转换为它们的Html等效代码。我找不到关于它编码和不编码的文档。然后为了正确地向用户显示,我需要HtmlDecode
it
2个问题:
HtmlEncode
如何决定它需要编码一个假定有效的字符,如u
,而不是其他unicode字符,如标准英文字母字符。HtmlEncode
是否对所有非ascii字符进行编码?防止脚本标记但允许特殊字符(如umlauts)而不创建特殊忽略列表的最佳方法是什么HtmlDecode
是否会在转换回潜在恶意javascript时暴露风险关于编码和解码的内容要比我在这里写的多得多,在我之前的人已经解释得比我详尽得多。可以向您解释XSS是什么以及如何防止它。“我的问题是HtmlEncode转换特殊字符”为什么会有问题?您的字符串应该显示为HTML源代码(那么HtmlEncode是正确的)或者显示为纯文本(那么不要使用HtmlEncode)。它不会将英文字母编码为HTML代码。它不需要。请告诉我们您如何处理字符串以及如何向最终用户显示字符串。为什么需要对特殊的德语和法语字符(如umlaut和^)进行编码,因为这样做是安全的。HtmlEncode将处理的所有字符都是=任何非ASCII字符+任何可能被浏览器误读的ASCII字符,如<>等?@user48408是的,完全正确。假设这是正确的,我将其标记为答案。如果你对此有任何文档,请在评论中发表