phpMyAdmin 直接管理 MySQL,若無認證保護,一旦入口暴露將導致資料庫洩露、篡改甚至刪除。本文說明如何透過修改 config.inc.php 啟用 Cookie 認證模式,並解釋三種認證模式差異與適用場景。
全新安裝的 phpMyAdmin 預設使用 config 模式:直接在配置檔寫死帳號密碼,**無任何登入介面**,只要知道 URL 即可直接操作資料庫,風險極高。
| 模式 | 參數值 | 特點 | 適用場景 |
|---|---|---|---|
| config | 'config' | 配置檔直存帳密,無登入頁,自動登入 | 僅本地開發、極度信任的內網 |
| http | 'http' | HTTP Basic Auth,瀏覽器原生彈窗 | Apache 環境,簡單部署 |
| cookie | 'cookie' | 表單登入,Session 管理,支援登出、記住我 | 生產環境首選,IIS/Apache 通用 |
config.inc.php。$cfg['Servers'][$i]['auth_type'] 行。$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['blowfish_secret'] = 'your_random_32chars_string_here'; // 32 字元隨機字串
phpmyadmin 目錄重命名為難以猜測名稱(如 pma_x7k9),或配置 Nginx/Apache 限制存取 IP。Q: 修改後無法登入?
A: 檢查 blowfish_secret 是否設定、Session 目錄是否可寫、Cookie 是否被瀏覽器阻擋。
Q: IIS 環境能用 http 模式嗎?
A: 不能。HTTP Basic Auth 依賴 Apache 模組,IIS 不支援。請統一使用 cookie 模式。
將 auth_type 設為 cookie 並配置 blowfish_secret 是保護 phpMyAdmin 的最低標準。配合路徑隱藏、HTTPS 強制、IP 白名單、專用帳號、定期更新,可構建多層防護體系,將資料庫被攻破風險降至最低。