安全运行时引擎VS AntiXSS库

时间:2011-02-17 21:00:07

标签: c# asp.net security xss wpl

我看到网络保护库(WPL)有两个不同的选项:

  • 安全运行时引擎(SRE)
  • AntiXSS库

第一个看起来很棒,因为不需要代码,它是一个HTTPModule。第二个需要在代码上手动添加转义逻辑。

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

谢谢!

1 个答案:

答案 0 :(得分:6)

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

http://www.owasp.org/index.php/Data_Validation#Data_Validation_Strategies

这并不是说我在SRE中看不到任何价值。我认为它看起来像是一个很好的工具,但是它可以被认为是 额外的 防御层。

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

换句话说,这看起来像是一个很好的工具,但不能以牺牲自己的预防措施为代价。已经知道如何抵御常见网络攻击的程序员通常足够聪明,知道不要仅仅依靠工具。它们也可能已经在防御性编码,如果您已经在防范SQL注入,那么添加一个执行相同操作的模块似乎是多余的。我冒昧地猜测这是缺乏人气的原因。

另一方面注意,此功能提供的功能类似于您在良好的Web应用程序防火墙(WAF)中找到的功能。它受到相同的基本缺陷的影响。这是一个很好的解读为什么WAF不够,这也解释了为什么SRE不够,以及为什么我们不会依赖它。

http://www.acunetix.com/blog/news/implementing-a-web-application-firewall-only-is-not-enough-to-secure-web-applications/