在MVC应用程序中将编码器类型转换为AntiXssEncoder有什么好处



在.Net 4.5的What's New页面中,它说你可以将编码器类型设置为使用AntiXssEncoder类型。http://www.asp.net/aspnet/overview/aspnet-and-visual-studio-2012/whats-new#_Toc318097382

<httpRuntime ...
    encoderType="System.Web.Security.AntiXss.AntiXssEncoder,System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

但是修改默认编码器类型有什么好处?

谢谢。

AntiXssEncoder 使用白名单方法来识别恶意输入 [导致跨站点脚本 (XSS) 的输入]。

ASP.Net 中的默认编码器使用黑名单方法。

两者都对数据进行输出编码。从安全角度来看,在识别恶意方面,基于白名单的方法应始终优于黑名单方法。

摘自 http://weblogs.asp.net/jongalloway/using-antixss-4-1-beta-as-the-default-encoder-in-asp-net

  1. 由于使用了白名单方法,AntiXSS 本质上更安全。许多安全审核和认证将要求您 使用白名单 XSS 编码器,因为黑名单始终是潜在的 容易受到未知攻击。
  2. 新的浏览器内置了更好的XSS过滤,但是较旧的浏览器(例如UTF-7字符集开关)中存在漏洞,这些漏洞 不会被 ASP.NET 默认编码器检测到。

它设置对输入值的完全控制。当字符串有一些恶意代码时,antixss 库会丢弃它来保护。

http://haacked.com/archive/2010/04/06/using-antixss-as-the-default-encoder-for-asp-net.aspx/

最新更新