在"How To: Prevent Cross-Site Scripting in ASP.NET"中的步骤1的注释中,声明您应该“不依赖于ASP.NET请求验证。除了您自己的输入验证之外,还将其视为额外的预防措施。”
为什么不够?
答案 0 :(得分:2)
首先,黑客总是提出新的攻击和插入XSS的新方法。 ASP.NET的RequestValidation仅在新版本的ASP.NET发布时才会更新,因此如果有人在ASP.NET发布后的第二天遇到新的攻击,RequestValidation将无法捕获它。
那(我相信)是AntiXSS项目出现的原因之一,因此它可以有更快的发布周期。
答案 1 :(得分:2)
只有两个提示:
您的应用程序不仅可能输出使用ASP.NET表单输入的数据。想一想Web服务,RSS提要,其他数据库,从用户上传中提取的信息等。
有时需要禁用默认(有效但过于简单)的请求验证,因为您需要在表单中接受尖括号。想想一个WYSIWYG编辑器。