代码之家  ›  专栏  ›  技术社区  ›  dtc

<%:%>与微软的反XSS库

  •  7
  • dtc  · 技术社区  · 14 年前

    对于.NET 4,有一个新的脚本附件<%:%>,类似于<%=%>,但执行HTML编码。人们鼓励使用这种新语法。

    My question is, does <%: %> protect against XSS better or as well as using the Microsoft Anti XSS library?

    一位微软安全人员曾经告诉我,不要只使用HTML编码,因为它保护得不好,我应该总是使用反XSS库(或其他库)。对于<%:%>,这仍然是正确的吗?或者,我是否可以自信地使用<%:%>知道它会像人们所说的那样保护我的应用程序不受XSS攻击?

    2 回复  |  直到 14 年前
        1
  •  9
  •   Russ Cam    14 年前

    HttpUtility.HtmlEncode uses a black list (principle of exclusions) approach to encoding, which potentially leaves the door ajar for newly discover exploits in the future. 这个 Anti-XSS library (现在称为Web保护库,也包括用于减轻SQL注入的代码)使用白名单方法(包含原则),它将进一步关闭门,并应提供更好的安全性。

    <%: ... %> 只是一个捷径 <%= Server.HtmlEncode(string) %> 因此提供了应用程序中使用的编码器的安全性。

    你可以使用任何你喜欢的编码器与新的 <%:…%& gt; 语法和菲尔·哈克在 hooking up the Anti-Xss library as the default encoder . 请记住,当前的Anti-XSS库3.1需要运行中等信任-这是为将来的版本解决的。

        2
  •  1
  •   SLaks    14 年前

    新语法只能用于转义HTML中的原始文本内容。 编辑 :和属性。

    为了 属性, javascript和其他上下文,您应该仍然使用反XSS库,