登录论坛 | 注册会员 设为首页 | 收藏本站
当前位置 : 首页>软件学院>数据库>SQL>正文
 
GreenSQL助力防止SQL注入攻击

http://www.dbit.cn 2009/3/21 9:04:58  来源:东北IT网  编辑:叶子
 
  SQL注入攻击的危害早已为人所熟知,这种攻击准许攻击者在你的数据库上执行任意的SQL命令。要对付这种攻击,我们对于Web用户 所提供的任何数据,不管是通过HTTP方式,还是通过CGI参数方式提供的,都要经过验证,以确保其不包含非法信息。

  这是解决问题的根本之道。我们需要一种工具。许多安全机构和人员提出了不少对付这种攻击的方法。今天我们看一个不错的工具GreenSQL,可以说它是一个MySQL数据库防火墙,可以过滤SQL注入攻击。

  它位于网站和MySQL数据库之间,可以决定哪些SQL语句可以执行,哪些不应当执行。再加上其Web界面,使得 用户可以通过浏览器来管理GreenSQL。GreenSQL的设计目的就是用作MySQL数据库的一个代理服务器。它不是将用户的请求直接连接到MySQL数据库,而是连接到GreenSQL。 GreenSQL将合法的SQL提交给MySQL数据库并返回结果。

  如果GreenSQL检测到一条不属于白名单并包含恶意SQL的语句,它将阻止此SQL 并返回一个空结果,不与MySQL数据库发生联系。笔者完成此文时,Fedora、openSUSE、 Ubuntu 等Linux发行版本并没有包含GreenSQL。

  在本文中,笔者将在一台64位的Fedora 9计 算机上从源代码安装greensql-fw 0.8.4。安装过程并没有使用自动化的工具,所以必须手动设置一些东西,如配置文件、系统用户、MySQL配置、日志文件、/etc/init.d等。 这些过程在install.txt文件中有明确说明,所以并不太费力。当然,通过执行脚本字典中的几个脚本外壳,你也可以完成安装的不 少内容。为编译应用程序,可以简单地执行“make”,如下所示:

$ tar xzf /.../greensql-fw-0.8.4.tar.gz
$ cd greensql-fw-0.8.4/
$ make
...
connection.hpp:29: error: field 'proxy_event' has incomplete type
connection.hpp:30: error: field 'client_event' has incomplete type
可以看出,在编译开始后,我们收到了几个错误,这是由于在Fedora 9上安装时,笔者并没有安装libevent-devel。在安装好libevent-devel后,又发现需要修改/usr/include/event.h,为编译事件代码,需要将sys/types.h包括进去。
vi /usr/include/event.h ... #include  #include  #include  #include 
在使用“make -k”命令时,有几个文件又出现了差错,这些文件调用了字符串函数,如“strcasecmp”,这是由于没有包括 string.h头文件所致。对读者来说,根据所使用的gcc的版本的不同,在编译GreenSQL时,可能会出现类似或不类似于下面的一些问 题:
$ cd src $ vi mysql/mysql_con.cpp ... 
// License: GPL v2 (http://www.gnu.org/licenses/gpl.html) // 
 #include 

 #include "mysql_con.hpp" ... 
$ vi config.hpp ... #ifndef GREEN_SQL_CONFIG_HPP #define 

GREEN_SQL_CONFIG_HPP #include  ... 
$ vi ../src/parser/expression.hpp ... #ifndef _SQL_EXPRESSION_HPP_ 

#define _SQL_EXPRESSION_HPP_ #include  ...
如果你在一个64位的发行版本上编译GreenSQL,可能还需要稍稍修改Makefile,这样编译生成程序才能检查lib64而不是lib目录,如 下所示:
$ vi src/Makefile ... 
LIBS:=-L/usr/local/lib -L/usr/local/lib/mysql -L/usr/lib64/mysql -lmysqlclient -levent -lpcre 

greensql-fw: $(OBJS) ... $ make
编译完成,下面显示的完成安装的命令:
greensql-fw-0.8.4]# cd ./scripts/ 
# ./setup_user.sh done... 
# ./greensql-create-db.sh -----------------------------

---------------- The following settings will be used: MySQL admin user: [root] 
MySQL admin password: [] MySQL server 

address: [127.0.0.1] GreenSQL configuration DB name: [greendb] 
DB user to create: [green] 
Password to set: [pwd] Do 

you want to change anything? [y/N] y
MySQL admin user [root]: MySQL admin password []: XXxxXXxxXXxx-FIXME MySQL 

server address (you can use ip:port string) [127.0.0.1]: 
GreenSQL config db name [greendb]: GreenSQL DB user name 

[green]: greendb GreenSQL DB user password [pwd]: greendbpass
 --------------------------------------------- The 

following settings will be used: Do you want to change anything? [y/N] 
Creating MySQL database... 
Adding MySQL user... 
Creating MySQL tables... 
GreenSQL configuration file is not writable!!! Check that [database] section 

contains the following settings in /etc/greensql/greensql.conf [database] 
dbhost=127.0.0.1 dbname=greendb 

dbuser=greendb dbpass=greendbpass # dbport=3306 ... 
# ./setup_conf.sh done... 
# ./setup_log.sh done... # 

./setup_binary.sh done... 
# vi /etc/greensql/greensql.conf ... [database] dbhost=127.0.0.1 dbname=greendb 

dbuser=greendb dbpass=greendbpass ... 
# chkconfig --add greensql service greensql does not support chkconfig # 

/etc/init.d/greensql start
软件包的install.txt文件描述了手动安装方法,与脚本所使用的命令相同。使用脚本可能更好一些,因为这样可以提高安装速度, 而安装程序基本相同。安装指南推荐在/etc/greensql目录之前设置MySQL数据库,不过如果你这样做的话,有可能无法找到配置文件 ,所以你必须手动更改/etc/greensql/greensql.conf文件。你对greensql.conf作出的唯一主要更改是获取MySQL数据库参数。为测试需要,笔者创建了一个称为“test”的数据库,并允许用户“ben”自由访问,命令如下:

本新闻共3页,当前在第1页  1  2  3  

收藏】【打印】【进入论坛
  相关文章:

·MySQL CEO加入基准基金公司
·MySQL创始人联合14000人反对甲骨文收购Sun
·MySQL创始人呼吁用户反对甲骨文收购Sun
·94%浏览器攻击发生在漏洞公布的24小时之内
·五大著名免费SQL注入漏洞扫描工具
·如何防御网站SQL注入
·SQL攻击:防御和检查SQL注入的手段
·解析SQL注入 十大方式保护数据安全
·用SQL分离器实现sa弱口令强行入侵
·检测SQL Server是否有特洛伊木马 
·使用SQL更改SQL 2005 sa用户密码的方法

 
 
 
最新文章

抢先苹果,消息称英特尔芯片采用台积电
三星揭晓业内首款单条 512GB DDR5 内存
vivo 高端新机爆料:120Hz 曲面屏 + 天
vivo Y21 在印度正式上市:Helio P35 芯
微星推出 GeForce RTX 3080 Sea Hawk X
消息称三星 Galaxy Tab S8 系列平板将放
机械革命推出 F6 轻薄本:16 英寸全面屏
英特尔 12 代 Alder Lake CPU 600 系列
雷军:向小米手机 1 首批用户每人赠送价
小米李明谈用户被踢出 MIUI 测试版:大

推荐文章
1
2
3
4
5
6
7
8
9
10
叛逆嫩模性感写真
宫如敏不雅照疯传 看张馨予韩一菲兽兽谁
不惧孔子抢位 阿凡达游戏影音配置推荐
2015第十七届“东北安博会”火爆招商
第十六届东北国际公共安全防范产品博览
2016年第五届中国国际商业信息化博览会
2016年第五届中国国际POS机及相关设备展
互联网电视熟了吗 2013最火电视深解析
桑达获邀出席2015中国(广州)国际POS机
宝获利报名参加“2015年度中国POS机行业
八卦图解 More>>
叛逆嫩模性感写真 宫如敏不雅照疯传 看张馨予韩一菲
周伟童魔鬼身材日本性感写真图  联想V360笔记本模特写真