Linux下開發Web程序,現在很流行的開發方法為:用PHP開發Web程序,用Apache做Web Server,mysql充當後台管理數據庫。這種組合使得開發Web程序簡單、安全、效率高。由於程序是在Linux下運行,雖免去了版權費用,對數據庫的管理卻少了Windows下的圖形界面管理工具,因此使用起來有點困難。現在有了一套由php開發愛好者寫的管理Linux下數據庫的程序, phpMyAdmin可極好的解決使用的易用性問題。PhpMyAdmin對管理Linux下的數據庫行之有效,用戶可以通過web浏覽器新建刪除數據庫,增加、刪除、修改表結構和表數據,還可以通過表單形式提交查詢語句,返回數據結果。因此,現在很多的Linux服務器都使用phpMyAdmin管理數據庫。
PhpMyAdmin是一套放在服務器端的通過浏覽器界面管理的程序,因此,確保其目錄安全性十分重要,否則,將導致數據被盜取甚至遭到惡意破壞。下面將詳細講述一般的防范措施。
一、 修改phpMyAdmin目錄名:
在不修改目錄名前,其他人很容易洞察該目錄名,造成安全隱患。如,假設一台Linux主機的域名為:www.test.com,那麼不修改目錄名的情況下,在地址欄中輸入:www.test.com/phpMyAdmin/ 就將進入phpMyAdmin管理程序。因此如果將phpMyAdmin目錄改名為一個別人不易知道的目錄,如mynameadmin,這樣,你在管理自己的數據庫時,只要鍵入:www.test.com/mynameadmin/ 就可以通過浏覽器管理數據庫了。(注:下面仍將使用phpMyAdmin目錄名,如果目錄名已換,只需把phpMyAdmin改名為新的目錄名即可。)
二、 對phpMyAdmin目錄加用戶身份驗證:
這是很多網站需要用戶驗證時普遍使用的方法,這樣當用戶第一次浏覽進入該目錄時,都將出現一個提示窗口,提示用戶輸入用戶名和密碼驗證,其是通過使用Apache Server的標准 mod_auth模塊實現的,具體操作方法如下:
1、VI編輯Apache Server配置文件,確保文件中如下兩句話沒有加注釋,如果這兩句話前有"#"符號,去掉"#"號。 DocumentRoot /data/web/apache/public/htdocs
AccessFileName . htaccess
AllOerride All
2、passwd程序創建用戶文件: htpasswd - c /data/web/apache/secrects/.htpasswd 88998
其中,-c表示選項告訴htpasswd你想生成一個新的用戶文件,/data/web/apache/secrects/ 是你想存放 .htpasswd 文件的目錄,文件名稱為 .htpasswd,88998 是在驗證時所用到的用戶名,敲如以上命令後,系統提示你輸入密碼,這個密碼就是驗證時所需要用到的密碼,該密碼在 .htpasswd 文件中是加密的。現在用more來查看 /data/web/apache/secrects/.htpasswd文件,可以看到其中有一行用戶名和一串加密密碼。
3、創建 .htaccess 文件:
使用文本編輯器,在目錄 phpMyAdmin (如果已經改名,就是新的目錄名)下創建 .htaccess 文件,在文件中加入如下語句: AuthName "用戶驗證"
AuthType Basic
AuthUserFile /data/web/apache/public/htdocs/phpMyAdmin/.htpasswd
require user 88998
保存所做操作後,再去看phpMyAdmin目錄,將提示驗證窗口,輸入剛用 htpasswd 命令創建的用戶名和密碼,即可進入該目錄。
三、 增加基於主機的訪問控制:
在修改了目錄名和增加訪問驗證機制後,應該說現在的phpMyAdmin已經很安全了,但由於phpMyAdmin目錄一般只是數據庫管理員使用,為防止別人還知道目錄名稱和驗證密碼,還可以增加如下的基於主機的訪問控制,基於主機的訪問是通過驗證用戶機器IP來實現的,即只有符合條件的IP才可以反問該目錄,否則拒絕訪問。
修改 .htaccess 文件如下: AuthName "用戶驗證"
AuthType Basic
AuthUserFile /data/web/apache/public/htdocs/phpMyAdmin/.htpasswd
require user 88998
order deny,allow
deny from all
allow from 202.100.222.80
這裡增加了三條基於主機訪問控制指令,其中第一條 order 指令的值是由一個逗號隔開的名單,這個名單表明了哪一個指令更高的優先權,第二條指令 deny 定義不能訪問該目錄的主機,第三條指令 allow 定義可以訪問該目錄的主機,這樣,該目錄除了IP地址為 202.100.222.80 的機器可以訪問該目錄之外,其他的都不能訪問,讀者可以把該地址該為用戶數據庫管理員IP。
總結:通過以上三點相結合,就可很好的確保 phpMyAdmin 目錄的安全,非數據庫管理員將很難通過phpMyAdmin程序讀取數據。這裡所講的是針對於phpMyAdmin目錄進行講述,其他目錄如需加訪問限制,也可依此方法操作。