首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL安全加固23條軍規:從網絡傳輸到賬號審計

     編輯:MySQL 資料庫相關知識

網絡傳輸層

  1. 跨非受信網絡**必走SSH隧道/SSL**加密連接
  2. 防火牆屏蔽3306(nmap/telnet驗證),或放DMZ區
  3. 啟用--skip-show-database隱藏庫列表

認證與授權

  1. 除root外**禁訪mysql.user表**(含加密密碼)
  2. 用GRANT/REVOKE做訪問控制
  3. 密碼**禁明文**,用MD5/SHA1單向哈希
  4. 拒絕字典弱密碼
  5. 應用用**專用賬號、最小權限**
  6. 不授PROCESS/SUPER給非管理員(可見查詢文本/斷連接/改參數/控制複製)
  7. 不授FILE權限(防LOAD DATA '/etc/passwd')
  8. 不信DNS則授權表只寫IP

應用層防注入

  1. Web表單用引號包裹,動態URL轉義%22/%23/%27
  2. 傳參前**檢查長度/類型/格式**
  3. 各語言用專用**轉義函數**(PHPmysqli_real_escape_string、JavaPreparedStatement等)

系統層加固

  1. MySQL目錄**僅啟動用戶可讀寫**
  2. 啟動用**普通用戶**(非root)
  3. 禁用符號鏈接--skip-symbolic-links
  4. 限制單賬號連接數max_user_connections
  5. GRANT支援資源限制(MAX_QUERIES_PER_HOUR等)

啟動參數安全開關

  • --local-infile=0禁用LOAD DATA LOCAL
  • --skip-grant-tables**僅緊急救援用**,修復後FLUSH PRIVILEGES恢復鑒權

急救:root密碼丟失/拒訪

# 1. 跳過授權啟動
mysqld --skip-grant-tables &

# 2. 免密登入改密
mysql -u root mysql
UPDATE user SET password=PASSWORD('newpwd') WHERE user='root';
FLUSH PRIVILEGES;

# 3. 正常重啟

總結

安全非一日之功,**配置+代碼+審計+應急**四位一體。定期複核這23條,覆蓋90%常見風險。

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