对网站和web应用程序的大量攻击都与所谓的sql注入漏洞有直接联系。对一些编写得不太好的应用程序来说,这个问题很严峻。因为通过操控发送到web服务器的数据,它能允许远程用户向数据库服务器发送任意的sql命令,并且还借助sql命令对抗由web应用程序执行的合法的数据库查询。通常,这种对抗发生在没有任何事先检查或清扫处理的情况下。什么办法可以弥补这一缺陷呢?greensql就是mysql数据库的“防火墙”。它所做的就是拦截正发往mysql的sql命令,对命令进行检查,然后停止询问或适量放行。然后把查询结果返回给调用的应用程序。
greensql 为一些linux的发行套件提供二进制软件包。如果你的发行版本没有涵盖在下载页面(http://www.greensql.net/download)以内,那可以下载greensql-console和greensql-fw 源码编译。以下是教你在下载这两个文件后怎样进行安装:
# tar xvzf greensql-fw-0.9.4.tar.bz2
# cd greensql-fw-0.9.4
# ./build.sh
# greensql-create-db.sh
最后一个命令会为greensql创立一个必需的mysql数据库,所以你必须确保mysql正在运行且被设定为听从某个端口(换言之,确保“跳过联网”没有被设定为/etc/my.cnf)。要启动并测试greensql,用这个:
# greensql-fw -p /etc/greensql &
# mysql -u root -h 127.0.0.1 -p 3305 -p
greensql代理听从3305端口。这意味着任何被代理的通过greensql的应用程序都需要被设定成无法使用本地unix插孔或无法与本地主机的3306端口连接, 相反应该通过3305端口连接。
greensql-console软件包提供了一个web界面,该界面可以用来查看被锁定的查询,也可以用来设定需要锁定的内容与范畴。把greensql-console源码编译解压到你的站点树,并且将config.phg进行调整以适合于你所选的greensql用户名,密码以及数据库名。
此外,如果你安装了greensql,你会想确保greensql可以在任何系统都能运行。这取决于你的linux版本,有可能就像从greensql-fw源树那里拷贝一份初始化指令稿一样那么简单。(例如,rpm/greensql-fw.redhat.init),也许,你希望把它添加到你的本地启动脚本中。
