与AntiXss相比,ASP.net提供的跨站脚本支持有什么不同。AntiXss是一个微软的库,用于保护您的站点不受XSS攻击。这两个API看起来几乎相似,看起来可以通过在代码文件中查找替换来轻松地从一个切换到另一个。
哪一个提供了更多针对XSS的安全性?使用ASP.net提供的内部支持可取吗?
发布于 2010-08-09 15:07:56
有几个不同之处。首先,微软的AntiXss库使用白名单编码,这意味着除了已知安全的所有字符外,所有字符都是编码的。ASP.NET的标准编码机制是黑名单。例如,对于超文本标记语言编码,它只编码4个字符:<、>、&和" (例如,它不编码单引号)。例如,看看this SO answer,这可能会出什么问题。
另一个区别是基本的ASP.NET编码(使用HttpUtility)只能编码HTML。AntiXss还允许对HTML属性和JavaScript文本进行编码。在标准ASP.NET中没有安全的处理方法。
发布于 2010-08-09 16:38:21
您可能要记住的一件事是发布周期;只有在发布新版本的ASP.NET时,才能更新内置到HttpUtility中的编码。如果有人在发布后第二天提出了针对HttpUtility的XSS攻击,那么在发布新版本的ASP.NET之前,您的应用程序都是易受攻击的。AntiXSS有一个(快得多)的发布周期,这意味着当新的攻击出现时,团队可以更快地对它们做出反应,并发布一个更新的AntiXSS来防御它们。
https://stackoverflow.com/questions/3437819
复制相似问题