因為可以保護你的數據庫,從而免受SQL感染,GreenSQL被形象地稱為MySQL數據庫的”防火牆”。
對網站和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),也許,你希望把它添加到你的本地啟動腳本中。