为什么对于XSS预防,ValidateRequest =“true”不够?

时间:2010-04-01 09:19:19

标签: c# .net asp.net xss

"How To: Prevent Cross-Site Scripting in ASP.NET"中的步骤1的注释中,声明您应该“不依赖于ASP.NET请求验证。除了您自己的输入验证之外,还将其视为额外的预防措施。”

为什么不够?

2 个答案:

答案 0 :(得分:2)

首先,黑客总是提出新的攻击和插入XSS的新方法。 ASP.NET的RequestValidation仅在新版本的ASP.NET发布时才会更新,因此如果有人在ASP.NET发布后的第二天遇到新的攻击,RequestValidation将无法捕获它。

那(我相信)是AntiXSS项目出现的原因之一,因此它可以有更快的发布周期。

答案 1 :(得分:2)

只有两个提示:

  • 您的应用程序不仅可能输出使用ASP.NET表单输入的数据。想一想Web服务,RSS提要,其他数据库,从用户上传中提取的信息等。

  • 有时需要禁用默认(有效但过于简单)的请求验证,因为您需要在表单中接受尖括号。想想一个WYSIWYG编辑器。