C# 安全运行时引擎与AntiXSS库

C# 安全运行时引擎与AntiXSS库,c#,asp.net,security,xss,wpl,C#,Asp.net,Security,Xss,Wpl,我看到web保护库(WPL)提供了两种不同的选项: 安全运行时引擎(SRE) AntiXSS库 第一个似乎很棒,因为不需要任何代码,它是一个HTTPModule。第二种方法需要在代码上手动添加转义逻辑 尽管我提到了这个优势,SRE并不是很受欢迎,我想知道为什么。这个库有什么已知的问题,或者使用AntiXS有什么我没有看到的优势 谢谢 我在SRE中看到的最大缺陷是,在我看来,它依赖于“黑名单”行为。例如,它尝试检测SQL语句以提供SQL注入保护。黑名单是脆弱的,仅仅是因为为了提供100%的保护

我看到web保护库(WPL)提供了两种不同的选项:

  • 安全运行时引擎(SRE)
  • AntiXSS库
第一个似乎很棒,因为不需要任何代码,它是一个HTTPModule。第二种方法需要在代码上手动添加转义逻辑

尽管我提到了这个优势,SRE并不是很受欢迎,我想知道为什么。这个库有什么已知的问题,或者使用AntiXS有什么我没有看到的优势


谢谢

我在SRE中看到的最大缺陷是,在我看来,它依赖于“黑名单”行为。例如,它尝试检测SQL语句以提供SQL注入保护。黑名单是脆弱的,仅仅是因为为了提供100%的保护,您必须了解所有潜在的有害输入

这并不是说我认为SRE没有任何价值。我认为这看起来是一个很好的武器库工具,但是它可以被看作是一个额外的防御层

我看到的使用这个库的另一个缺点是,它可能会鼓励编码人员懒于学习如何保护他们的应用程序。依靠任何一个工具来提供保护(甚至是一堆工具来提供保护)充其量也是愚蠢的。程序员很容易在不经意间引入阻碍最佳工具的安全缺陷。因此,一个好的开发人员,一个关心安全性的开发人员,不会依赖这样的工具,但无论如何都会进行转义,而不是信任一个工具来为他们做这件事

换句话说,这看起来是一个很好的使用工具,但不是以你自己采取预防措施为代价。而那些已经知道如何抵御常见网络攻击的程序员通常都足够聪明,知道不要仅仅依赖工具。他们也可能已经进行了防御性编码,如果您已经在防范SQL注入,那么添加一个做同样事情的模块似乎是多余的。我大胆猜测,这就是缺乏人气的原因

另一方面需要注意的是,它提供的功能与良好的Web应用程序防火墙(WAF)类似。它也有同样的基本缺陷。这本书很好地解释了为什么WAF是不够的,也回答了为什么SRE是不够的,以及为什么我们不会依赖它