Linux下PhpMyAdmin程序目錄的安全管理
2024-08-28 00:23:34
供稿:網友
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目錄進行講述,其他目錄如需加訪問限制,也可依此方法操作。