代码之家  ›  专栏  ›  技术社区  ›  Cade Roux

使用Joel建议的类型系统防止XSS攻击

  •  5
  • Cade Roux  · 技术社区  · 15 年前

    Podcast 58 (大约20分钟内),杰夫抱怨工作中的问题 HTML.Encode()

    • 默认情况下进行编码。问题在于 这种设计选择是因为它不是 默认情况下是安全的,这始终是 忘了对一些数据进行编码 你的web应用程序中的臭地方,以及 您将完全拥有XSS。 发生在我们身上。多次!

    • Joel坚持认为,使用强类型语言 框架,其可能(理论上) 要完全消除XSS,请执行以下操作 需要使用特定的数据 将数据发送到浏览器。这些数据 类型将在编译时验证 时间

    transcript Wiki 还没做完。

    这样做是否值得,而不是投资于静态分析?

    1 回复  |  直到 3 年前
        1
  •  2
  •   Brandon Gano    15 年前

    要在任何地方使用HtmlString,您必须重写每个web控件的每个属性和方法。字符串是密封的,所以不能将其子类化。

    一种更简单(但仍然非常耗时)的方法是使用控件适配器用安全的替代品替换web控件。在本例中,您将对每个web控件进行子类化,并覆盖呈现方法以对动态内容进行HTML编码。