首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >非程序化的SQL注入预防

非程序化的SQL注入预防
EN

Stack Overflow用户
提问于 2011-02-12 05:46:30
回答 4查看 860关注 0票数 4

我同意正确的输入验证是防止SQL注入的唯一“防伪”方法,但是它需要修改现有应用程序中的大量代码,可能需要重新构造设计糟糕的应用程序。

学术界对防止SQL注入的自动化机制有很多兴趣(我已经做了一项文献调查,至少看到了20篇),但我还没有看到任何实际实现的东西。

有没有人知道任何在学术环境之外实际使用的框架,无论是基于签名的,基于异常的,还是其他的?

编辑:我在寻找没有修改代码库的东西。

EN

回答 4

Stack Overflow用户

发布于 2011-02-12 05:57:42

我为之工作的公司使用Barracuda Web应用程序防火墙来实现你所说的。据我所见,效果相当好。基本上,如果它检测到可疑输入,它就会将用户重定向到我们选择的页面。这允许您在internet和应用程序之间放置一个层,并且不需要您更改任何代码。

也就是说,不保护您的应用程序是个坏主意。

票数 8
EN

Stack Overflow用户

发布于 2011-02-12 06:19:08

如果您不打算修改您的代码,那么您只能拦截请求。由于没有好的或坏的SQL命令,所以在选项上非常有限,但是可以尝试拒绝从单个字符串发起的多个查询。换言之:

LEGAL

代码语言:javascript
复制
SELECT * FROM foo WHERE bar='baz';

非法

代码语言:javascript
复制
SELECT * FROM foo WHERE bar=''; DELETE * FROM foo; SELECT 'baz';

由于几乎每一次注入攻击都需要一个请求中的多个查询,并且如果您的应用程序不需要这个特性,那么您就可以不使用这个特性了。它可能不会捕捉到每种类型的攻击(使用子查询和函数可能会造成很大的伤害),但它可能总比没有好。

票数 3
EN

Stack Overflow用户

发布于 2011-02-22 05:36:06

在修补像SQL注入这样的漏洞时,保持代码不受影响的唯一方法是使用像开源项目安全性这样的web应用程序防火墙。最近,甲骨文发布了一个数据库防火墙,用于过滤讨厌的查询。这种方法更好地解决了SQL注入问题,但它可以解决所有问题。

WAF是非常有用和免费的,如果你不相信它,把它测试一下

WAF只是一层。您还应该在它下面使用测试应用程序*。这是一种深度防御方法。

*这是我以有限的免费优惠出售的服务。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4976581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档