我在SRE中看到的最大缺陷是,在我看来,它依赖于"黑名单"行为.例如,它尝试检测SQL语句以提供SQL注入保护.黑名单很弱,只是因为您必须知道所有可能有害的输入才能提供100%的保护.
http://www.owasp.org/index.php/Data_Validation#Data_Validation_Strategies
这并不是说我在SRE中看不到任何价值.我认为它看起来像是一个很好的工具,但是它可以被认为是一个额外的防御层.
我看到使用这个库的唯一另一个缺点是,它可能会鼓励编码人员学习如何保护他们的应用程序.依靠任何单独的工具提供保护(甚至一堆工具来提供保护)充其量是愚蠢的.程序员很容易无意中引入阻碍最佳工具的安全漏洞.因此,一个好的开发人员,一个关注安全性的人不会依赖这样的工具,但无论如何都会逃避,而不是相信工具为他们做这件事.
换句话说,这看起来像是一个很好的工具,但不能以牺牲自己的预防措施为代价.已经知道如何抵御常见网络攻击的程序员通常足够聪明,知道不要仅仅依靠工具.它们也可能已经在防御性编码,如果您已经在防范SQL注入,那么添加一个执行相同操作的模块似乎是多余的.我冒昧地猜测这是缺乏人气的原因.
另一方面,它提供的功能类似于您在良好的Web应用程序防火墙(WAF)中找到的功能.它受到相同的基本缺陷的影响.这是一个很好的解读为什么WAF不够,这也解释了为什么SRE不够,以及为什么我们不会依赖它.