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

LOAD DATA LOCAL 安全風險:惡意伺服器竊取客戶端任意檔案、禁用方案

     編輯:MySQL 資料庫相關知識

攻擊原理

  • LOAD DATA LOCAL INFILE 由**伺服器發起**要求客戶端傳送檔案。
  • 惡意修補過的伺服器可要求客戶端傳送**任意可讀檔案**(如 /etc/passwd、原始碼、金鑰),而非使用者指定檔案。
  • Web 環境中,客戶端實為 Web 伺服器進程,攻擊者可竊取 Web 伺服器可讀的所有檔案。

防禦方案

層面指令/參數效果
伺服器端全域禁用mysqld --local-infile=0禁止所有 LOAD DATA LOCAL
客戶端 mysql 啟用mysql --local-infile[=1]啟用(需伺服器也啟用)
客戶端 mysql 禁用mysql --local-infile=0禁用
mysqlimport 啟用mysqlimport --local / -L啟用本地載入

最佳實踐

  • 生產環境**預設關閉** local-infile。
  • 確有本地導入需求時,臨時在客戶端與伺服器雙端啟用,完成後立即關閉。
  • 優先使用 LOAD DATA INFILE(無 LOCAL),檔案置於伺服器端,避免此攻擊面。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved