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

MySQL 安全加固 23 條軍規:從網絡傳輸到權限最小化

     編輯:MySQL 資料庫相關知識

網絡與傳輸安全

  1. 跨非受信網絡連接 必須使用 SSH 隧道加密
  2. 修改密碼:UPDATE mysql.user SET password=PASSWORD('newpwd'); FLUSH PRIVILEGES;
  3. 防範偷聽、篡改、重放、DoS;全鏈路 ACL + SSL 支援
  4. 非 root 禁訪 mysql.user 表(密碼洩露即帳號淪陷)
  5. 使用 GRANT/REVOKE 精細權限控制
  6. 禁用明文密碼,採用 MD5()/SHA1() 單向哈希
  7. 拒絕字典弱密碼
  8. 防火牆隔離 50% 外部風險,DB 放內網或 DMZ
  9. nmap/telnet 掃描 3306 端口,非受信網絡禁訪問

應用層防注入

  1. Web 表單用引號包裹,動態 URL 轉義(%22 %23 %27),嚴禁未檢查值直入 SQL
  2. 傳值前檢查長度/大小
  3. 應用用普通帳號,最小權限原則
  4. 各語言驅動必用「逃逸函數」
  5. 公網傳輸強制 SSL/SSH 加密

系統級加固

  1. tcpdump -l -i eth0 -w - src or dst port 3306 | strings 審計明文傳輸
  2. 以普通用戶啟動 mysqld
  3. 禁用符號連結 --skip-symbolic-links
  4. MySQL 目錄僅啟動用戶可讀寫
  5. 非管理員禁 PROCESS/SUPER(可見查詢文本/斷連/改參數/控制復制)
  6. 非管理員禁 FILE 權限(防 LOAD DATA '/etc/passwd')
  7. 不信任 DNS → 白名單只填 IP
  8. max_user_connections 限制單帳號連接數
  9. GRANT 支援資源限制(查詢/更新/連接次數/小時)

啟動參數與應急

  1. --local-infile=0 禁用客戶端 LOCAL LOAD DATA;--skip-grant-tables 跳過權限(慎用)
  2. 預設 SHOW DATABASES 對所有用戶開放,可 --skip-show-databases 關閉

🆘 遇 Error 1045 Access denied for root:
mysqld --skip-grant-tables → UPDATE user SET password=PASSWORD('new') WHERE user='root'; FLUSH PRIVILEGES; 重啟

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