使用HttpUtility.HtmlEncode和处理特殊字符/元音变音符等
本文关键字:音符 特殊字符 HttpUtility HtmlEncode 处理 使用 | 更新日期: 2023-09-27 18:28:57
我使用HttpUtility.HtmlEncode
来净化用户输入,以防止XSS攻击。我的问题是HtmlEncode
将像ü
这样的特殊字符转换为它们的Html等效代码。我找不到关于它编码和不编码的文档。然后为了正确地向用户显示这个,我需要HtmlDecode
它。
2个问题:
-
HtmlEncode
如何决定它需要编码像ü
这样的假定有效字符,而不是像标准英语字母表字符那样的其他unicode字符。HtmlEncode
是否对所有非ascii字符进行编码?在不创建特殊忽略列表的情况下,防止脚本标记但允许使用元音变音符等特殊字符的最佳方法是什么? -
使用
HtmlDecode
是否会在转换回潜在的恶意javascript 时暴露风险
- HTMLEncode()主要做两件事:
- 它处理不属于默认127 ASCII字符集的任何字符
- 它对可能被浏览器误解为有效HTML、CSS或Javascript的字符进行编码,以防止意外和故意更改网页
- 使用它有危险吗?使用任何东西都可能是危险的,这取决于你如何使用它。问题不在于"你在解码吗?",而在于"你正在解码用户数据吗?"。使用它肯定是危险的,这取决于你对结果的处理。即使只是将其显示给客户端也可能导致XSS
关于编码和解码,我在这里写的要多得多,在我之前的人已经解释得比我详尽得多。这篇关于在Asp.Net中防止XSS的文章可以解释什么是XSS以及如何防止它。