ASP.net与AntiXss Lib中的反XSS支持

时间:2010-08-09 06:38:10

标签: asp.net antixsslibrary xss

ASP.net提供的XSS(跨站点脚本)支持与AntiXss有何不同。 AntiXss是一个用于保护您的站点免受XSS攻击的微软库。这两个API看起来几乎相似,看起来它们可以通过在代码文件中执行find replace来轻松地从一个切换到另一个。

哪一个提供更强的安全性来对抗XSS?使用ASP.net提供的内在支持是否可取?

2 个答案:

答案 0 :(得分:2)

有几点不同。首先,Microsoft AntiXss库使用白名单编码,这意味着所有字符都被编码,除了已知安全的所有字符。 ASP.NET的标准编码机制是黑名单。例如,对于HTML编码,它仅编码4个字符:<>&"(例如,它不对单引号进行编码)。在this SO answer查找可能出现此问题的实例。

另一个区别是基本的ASP.NET编码(使用HttpUtility)只能编码HTML en URL。 AntiXss还允许编码HTML属性和JavaScript文本。在标准ASP.NET中没有安全的方法。

答案 1 :(得分:1)

你可能要记住的一件事是释放周期;只有在发布新版本的ASP.NET时才能更新内置于HttpUtility中的编码。如果某人在发布后的第二天提出了针对HttpUtility的XSS攻击,那么在发布新版本的ASP.NET之前,您的应用程序很容易受到攻击。 AntiXSS具有(更快)更快的发布周期,这意味着当新的攻击出现时,团队可以更快地对它们作出反应并发布更新的AntiXSS,以防御它们。