我正在使用HttpUtility.HtmlEncode
来清理用户输入以防止XSS攻击。我的问题是,HtmlEncode
会将ü
等特殊字符转换为其Html等效代码。我找不到有关它的功能和编码的文档。然后为了正确地向用户显示这个,我需要HtmlDecode
它。
2个问题:
HtmlEncode
如何确定它需要编码一个假定有效的字符,如ü
而不是其他unicode字符,如标准英文字母字符。 HtmlEncode
是否对所有非ascii字符进行编码?什么是防止脚本标记但允许特殊字符如变音符号而不创建特殊忽略列表的最佳方法?
使用HtmlDecode
会导致风险,因为它会转换回潜在的恶意javascript
答案 0 :(得分:1)
关于编码和解码的FAR比我在这里写的更多,而且我之前的人已经解释得比我更详尽。 This article on preventing XSS in Asp.Net可以向您解释XSS是什么以及如何防止它。