GreenSQL 是一个数据库防火墙程序,用来防止 SQL 注入攻击。GreenSQL 使用的是代理的模式来支持 MySQL 数据库,因为可以保护你的数据库,从而免受SQL感染,GreenSQL被形象地称为MySQL数据库的”防火墙”。
GreenSQL is an Open Source database firewall used to protect databases from SQL injection attacks. GreenSQL works as a proxy for SQL commands and has built in support for MySQL & PostgreSQL . The logic is based on evaluation of SQL commands using a risk scoring matrix as well as blocking known db administrative commands (DROP, CREATE, etc). GreenSQL is distributed under the GPL license.
SQL注入攻击的危害早已为人所熟知,这种攻击准许攻击者在你的数据库上执行任意的SQL命令。要对付这种攻击,我们对于Web用户 所提供的任何数据,不管是通过HTTP方式,还是通过CGI参数方式提供的,都要经过验证,以确保其不包含非法信息。
对网站和Web应用程序的大量攻击都与所谓的SQL注入漏洞有直接联系。对一些编写得不太好的应用程序来说,这个问题很严峻。因为通过操控发送到Web服务器的数据,它能允许远程用户向数据库服务器发送任意的SQL命令,并且还借助SQL命令对抗由Web应用程序执行的合法的数据库查询。通常,这种对抗发生在没有任何事先检查或清扫处理的情况下。什么办法可以弥补这一缺陷呢?GreenSQL就是MySQL数据库的“防火墙”。它所做的就是拦截正发往MySQL的SQL命令,对命令进行检查,然后停止询问或适量放行。然后把查询结果返回给调用的应用程序。
它位于网站和MySQL数据库之间,可以决定哪些SQL语句可以执行,哪些不应当执行。再加上其Web界面,使得 用户可以通过浏览器来管理GreenSQL。GreenSQL的设计目的就是用作MySQL数据库的一个代理服务器。它不是将用户的请求直接连接到 MySQL数据库,而是连接到GreenSQL。 GreenSQL将合法的SQL提交给MySQL数据库并返回结果。如果GreenSQL检测到一条不属于白名单并包含恶意SQL的语句,它将阻止此SQL 并返回一个空结果,不与MySQL数据库发生联系
GreenSQL代理听从3305端口。这意味着任何被代理的通过GreenSQL的应用程序都需要被设定成无法使用本地UNIX插孔或无法与本地主机的3306端口连接, 相反应该通过3305端口连接。
Greensql-console软件包提供了一个Web界面,该界面可以用来查看被锁定的查询,也可以用来设定需要锁定的内容与范畴。把 greensql-console源码编译解压到你的站点树,并且将config.phg进行调整以适合于你所选的GreenSQL用户名,密码以及数据库名。
最新版本:1.3
官方主页:http://www.greensql.net/