在 ASP.NET 中自动进行 HtmlEncode

Zab*_*bba 5 asp.net encoding

被 Ruby on Rails (3) 宠坏了,我希望我所有的 HTML 输出都能自动编码。

我早些时候问过这个关于脚本漏洞问题,现在我想知道,是否有一些 ASP.NET 的设置、插件或扩展会自动导致所有 HTML 被HtmlEncode'ed 或者我是否必须非常小心并确保在我的自己的?

Tim*_*Tim 5

各种 ASP.NET 控件使用 HtmlEncode 自动编码 HTML(还有一些使用 UrlEncode 进行 URL 编码),但它并不通用。这是控件列表以及它们自动执行的编码(如果有)。我不知道它是否针对 .NET 4.0 进行了更新:

哪些 ASP.NET 控件会自动编码?(此链接将要求您保存文档)

这是上述文档出自的博客:

http://blogs.msdn.com/b/sfaust/archive/2008/09/02/which-asp-net-controls-automatically-encodes.aspx

它最初发布于 2008 年 9 月,因此它可能适用于 2.0,但不一定适用于 4.0。尽管如此,IMO 仍然是一个有用的资源。

您还应该查看Microsoft Anti-Cross Site Scripting Library 3.1

正如 balexandre 所指出的,Anit-XSS 库现在似乎是开源 Web 保护库的一部分:

Microsoft Web 保护库

此外,OWASP是一个很好的安全信息资源,他们有一个企业安全 API 项目 (ESAPI),可以(在不同程度上)以各种编程语言提供。我相信 .NET 尚未完成。

OWASP 企业安全 API