【问题标题】:ASP.NET MVC 2 - AntiXSS vs Built In MVC EncodingASP.NET MVC 2 - AntiXSS 与内置 MVC 编码
【发布时间】:2011-03-26 02:09:02
【问题描述】:

现在 MVC 已经通过

引入了 HTML 编码
<%: blah %> 

使用还有价值吗

<%= AntiXSS.HTMLEncode(blah) %> 

改为?

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

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

【问题讨论】:

    标签: asp.net-mvc-2 antixsslibrary


    【解决方案1】:

    我不认为有任何真正的区别,但如果您真的很担心,您可以使用 AntiXss 库作为 asp.net 的默认编码器,如 this article 中所述。

    【讨论】:

    • 嘿,这是一篇很棒的文章。很有意义。
    • 对不起,不能这么快接受,等我能接受的时候,我已经忘记了。您可以感谢 @Alfred 将问题重新放在我的列表顶部,以便提醒我接受。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-01
        相关资源
        最近更新 更多