asp.net mvc - HTML 编码是否有任何缺点



我在MVC框架上开发了一个项目 ASP.NET。所有文件和字符集均采用 UTF-8。我正在使用模型绑定,在我的一些模型中,显示属性包括一些重音字符或单/双引号。

由于 Razor 引擎自动编码助手(即。显示名称)对重音字符和引号进行编码。

我可能会尝试使用一些自定义帮助程序来实现无需编码的渲染,但我想了解 HTML 编码是否有任何缺点?我正在使用 UTF-8 编码,我想按原样呈现文本"Öger's tours"。然而,它被渲染为"Öger's tours"。我要求这个场景。

(我听说搜索引擎索引在没有编码文本的情况下表现更好。但我不知道为什么。

谢谢。

实体编码的唯一强制字符是 < ,它启动 HTML 元素的开始和结束标记,&字符,否则启动 HTML 实体,以及(在用双引号括起来的属性内)"以防止过早终止属性。最好将实体用于>以防止混淆解析器。

对于其他所有内容,指定正确的字符集编码并在 HTML 文件中正确应用它就足够了。如果 HTML 文件的字符集支持'外部属性值,则尤其不需要对括在单引号或变音符号、连字或其他非 ASCII 字符中的外部属性值进行编码。

我发现解决方案是使用Razor encoderType的AntiXSS库。这个答案很好地描述了它。html 输出中的特殊字符

默认 Razor 编码器对重音字符进行编码,而 AntiXSS 库不对它们进行编码。因此,重音字符按原样呈现。

相关内容

最新更新