论坛首页 Java企业应用论坛

SQL注入攻击防御方案

浏览 33894 次
该帖已经被评为精华帖
作者 正文
   发表时间:2012-03-20   最后修改:2012-03-20
SQL注入攻击是黑客对数据库进行攻击的常用手段之一。随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。

目前已有apache mod_security的防御方式,误报率很高。

Druid数据库连接池提供了智能、高效、准确的SQL注入防御方案!具体细节看这里:

http://code.alibabatech.com/wiki/display/Druid/WallFilter

详细配置看这里:
http://code.alibabatech.com/wiki/display/Druid/WallFilterConfig

最新0.2-SNAPSHOT下载在这里:
http://code.alibabatech.com/mvn/snapshots/com/alibaba/druid/0.2-SNAPSHOT

源码在这里:
Druid项目源码 https://github.com/AlibabaTech/druid
SQL注入防御部分的源码https://github.com/AlibabaTech/druid/tree/master/src/main/java/com/alibaba/druid/wall

测试案例看这里:
https://github.com/AlibabaTech/druid/tree/master/src/test/java/com/alibaba/druid/bvt/filter/wall

这个功能将会在Druid 0.2版本中提供,目前Druid 0.2版本正在预发布阶段,欢迎大家提建议。

希望能做成Java世界中最好的SQL注入攻击防御手段!
   发表时间:2012-03-20  
WallFilter是Druid的一个扩展组件,对SQL注入的安全监测已经做到了高效、智能、准确,欢迎大家试用,协助测试:)
0 请登录后投票
   发表时间:2012-03-20  
问个傻傻的问题,sql参数不好用了?
0 请登录后投票
   发表时间:2012-03-20  
同问,使用ibatis的参数替换不是能解决sql注入问题吗?
0 请登录后投票
   发表时间:2012-03-20  
san_yun 写道
同问,使用ibatis的参数替换不是能解决sql注入问题吗?


存在$$或者错误使用标签<isNotEmpty>、<isEmpty>、<iterate>都可能遭受SQL注入攻击。
0 请登录后投票
   发表时间:2012-03-20  
这个已经应用到阿里了吗?
0 请登录后投票
   发表时间:2012-03-20   最后修改:2012-03-20
jinnianshilongnian 写道
这个已经应用到阿里了吗?


Druid已经部署了400多个应用,但SQL注入防御的功能目前正在测试中,还没开始应用。

这是一个开源的实现,希望社区参与共同完善,共享安全!
0 请登录后投票
   发表时间:2012-03-20  
去stackoverflow看了一下,归根结底还是“私自”组装sql造成问题(无论是在java里还是在存储过程里)
0 请登录后投票
   发表时间:2012-03-20  
wenshao 写道
jinnianshilongnian 写道
这个已经应用到阿里了吗?


Druid已经部署了400多个应用,但SQL注入防御的功能目前正在测试中,还没开始应用。

这是一个开源的实现,希望社区参与共同完善,共享安全!


嗯,如果再开发新项目就换上试试 ,老项目不敢换,parser是使用如antlr 还是自己开发的?
0 请登录后投票
   发表时间:2012-03-20  
jinnianshilongnian 写道
wenshao 写道
jinnianshilongnian 写道
这个已经应用到阿里了吗?


Druid已经部署了400多个应用,但SQL注入防御的功能目前正在测试中,还没开始应用。

这是一个开源的实现,希望社区参与共同完善,共享安全!


嗯,如果再开发新项目就换上试试 ,老项目不敢换,parser是使用如antlr 还是自己开发的?


手工编写的基于运算符优先级、递归下降的Parser,可维护性以及性能都远远超越antlr等工具生成的Parser。

目前Druid中的mysql、Oracle Parser的Parser都已经相当完善了,阿里巴巴线上系统收集的18万种SQL测试全部通过:)
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics