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 All2、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文件,可以看到其中有一行用戶名和一串加密密碼。
AuthName "用戶驗證" AuthType Basic AuthUserFile /data/web/apache/public/htdocs/phpMyAdmin/.htpasswd require user 88998保存所做操作後,再去看phpMyAdmin目錄,將提示驗證窗口,輸入剛用 htpasswd 命令創建的用戶名和密碼,即可進入該目錄。
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。