首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

phpMyAdmin 配置文件 config.inc.php 參數詳解與安全加固指南

     編輯:MySQL 綜合教學

phpMyAdmin 是最流行的 MySQL Web 管理工具,但默認配置存在弱口令、無認證、信息洩露等風險。本文逐項解析 config.inc.php 核心參數,給出生產環境安全加固配置模板。

一、 核心配置結構


$cfg['Servers'][$i]['host'] = 'localhost';        // MySQL 地址
$cfg['Servers'][$i]['port'] = '3306';             // 端口
$cfg['Servers'][$i]['user'] = 'pma_user';         // 專用管理賬號(非 root)
$cfg['Servers'][$i]['password'] = 'StrongPass#';  // 強密碼
$cfg['Servers'][$i]['auth_type'] = 'cookie';      // 認證模式:cookie/http/config/signon
$cfg['Servers'][$i]['extension'] = 'mysqli';      // 必須 mysqli
$cfg['Servers'][$i]['compress'] = true;           // 壓縮協議
$cfg['Servers'][$i]['ssl'] = true;                // 強制 SSL(需 MySQL 配置 SSL)

二、 認證模式深度對比

模式機制安全性適用場景
config配置文件寫死 user/pass,免登錄❌ 極低僅本地開發、受信內網
cookie表單登錄,密碼 Blowfish 加密存 Cookie✅ 高生產環境首選
httpHTTP Basic Auth,瀏覽器原生彈窗⚠️ 中等Apache 模塊模式,無法登出
signon單點登錄(SSO)集成✅ 高企業統一身份認證體系

生產必選 cookie + 強制 HTTPS。

三、 關鍵安全參數


// Blowfish 密鑰(cookie 加密必填,46 字符隨機串)
$cfg['blowfish_secret'] = 'xK9#mP2$vL5!qW8@rT3&yU7*oP0^sD1';

// 登錄 Cookie 有效期(秒),建議 1800(30 分鐘)
$cfg['LoginCookieValidity'] = 1800;
// PHP session.gc_maxlifetime 必須 ≥ LoginCookieValidity
// Cookie 關閉瀏覽器即銷毀
$cfg['LoginCookieStore'] = 0;
// 退出時刪除所有 Cookie
$cfg['LoginCookieDeleteAll'] = true;

// 禁止顯示服務器/數據庫/表詳細版本信息
$cfg['ShowServerInfo'] = false;
$cfg['ShowPhpInfo'] = false;
$cfg['ShowChgPassword'] = false;
$cfg['ShowCreateDb'] = false;

// 限制單次 SQL 執行時間(秒)
$cfg['ExecTimeLimit'] = 300;
// 內存限制
$cfg['MemoryLimit'] = '256M';

// 禁止普通用戶 DROP DATABASE
$cfg['AllowUserDropDatabase'] = false;
// 危險操作二次確認
$cfg['Confirm'] = true;
// 顯示執行的 SQL(調試用,生產建議 false)
$cfg['ShowSQL'] = false;

四、 多實例管理配置


$i = 0;
// 實例 1:生產主庫
$i++; $cfg['Servers'][$i]['host'] = '10.0.1.10';
$cfg['Servers'][$i]['verbose'] = '生產主庫';
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';  // 配置存儲庫,啟用書籤、歷史、關係圖

// 實例 2:只讀從庫
$i++; $cfg['Servers'][$i]['host'] = '10.0.1.11';
$cfg['Servers'][$i]['verbose'] = '只讀從庫';
$cfg['Servers'][$i]['read_only'] = true;      // 界面層只讀提示

// 默認登錄實例
$cfg['ServerDefault'] = 1;

五、 常見報錯快速修復

報錯原因修復
缺少 mysqli 擴展PHP 未安裝 php-mysqlnd / extension=mysqli 未開啟安裝擴展、php.ini 開啟、重啟 php-fpm
Cannot start session without errorssession.save_path 無寫權限 / 磁盤滿 / session.auto_start 衝突檢查目錄權限、清理臨時文件、關閉 auto_start
不允許空密碼登錄MySQL 賬號無密碼 / $cfg['AllowNoPassword']=false給賬號設密碼、或臨時開啟 AllowNoPassword(極不推薦)

六、 部署加固清單

  • ☐ 專用管理賬號(非 root)、最小權限
  • ☐ cookie 認證 + blowfish_secret 46 字符隨機
  • ☐ 強制 HTTPS(Nginx/Apache 終止 SSL)
  • ☐ 禁用 config/http 模式
  • ☐ 登錄超時 ≤ 30 分鐘、關閉瀏覽器銷毀
  • ☐ 隱藏版本信息、禁用危險操作入口
  • ☐ 接入 WAF/IP 白名單/雙因子認證
  • ☐ 定期升級 phpMyAdmin 至最新版

配置即防線,一份經過加固的 config.inc.php 能擋住 90% 自動化掃描與弱口令爆破。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved