5

现在 MVC 已经通过

<%: blah %> 

使用还有价值吗

<%= AntiXSS.HTMLEncode(blah) %> 

反而?

例如:我的应用程序将获取所有内容(包括 JavaScript)并将其以原始状态存储在数据库中。我计划使用类似的东西简单地输出<%: model.Name %>所有内容,并依靠 MVC“东西”为我进行编码。

该方法是否足够安全以依赖于 AntiXSS,还是我需要明确使用 AntiXSS 库?如果我需要使用 AntiXSS 库,请问为什么不将这种东西内置到 MVC 中?

4

3 回答 3

5

我不认为有任何真正的区别,但如果你真的那么担心,你可以使用 AntiXss 库作为 asp.net 的默认编码器,如本文所述

于 2010-08-05T23:30:09.000 回答
2

<%:仅使用HTML 编码进行编码。如果您要输出到 HTML 属性、Javascript 或任何适用 HTML 正文规则的空间,那么您仍然需要手动选择编码方法。

于 2010-08-06T20:27:03.740 回答
1

根据 Phil Haack 的文章:在 ASP.NET 4(包括 MVC)中使用 AntiXss 作为 ASP.NET 的默认编码器,您可以覆盖默认的 HTML 编码器以使用 AntiXSS 编码器。

反对“AntiXSS.HTMLEncode”的原因 1) 速记更容易编码 2) 调用辅助方法 (<%:%>/@:/HttpUtility.HtmlEncode/Server.HtmlEncode/etc.) 并注入编码器实现使您的代码与特定的 AntiXSS 实现相比,更易于维护。

但是,我相信“AntiXSS.HTMLEncode”是 .NET 版本 < 4 的唯一选择

于 2011-01-05T21:41:30.890 回答