load data infile 是 MySQL 的功能,可以被利用來讀取本機端 (server) 的檔案內容 (同 phpMyAdmin 匯入的動作)

底下的測試結果會讓你覺得就是應該要關閉這個功能才是啊

先講怎麼關 ? 編輯 vi /etc/my.cnf (再重啟 mysql) (一般使用者就無法使用,不過 root 權限還是可以 load data infile 的)

[mysqld]
local-infile=0

接著底下是模擬過程

一般使用者登入 phpMyAdmin

先建個 TABLE 如下

CREATE TABLE `test` (
  `a` varchar(255) NOT NULL,
  `b` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

再執行 SQL 語法

load data infile "/etc/passwd" into table test FIELDS TERMINATED BY '\n';

結果 (/etc/passwd 的內容都被塞入資料庫了)

mysql-local-infile

 

Related posts 相關文章
使用連線控制插件提高 MySQL 安全性
More...
使用驗證插件提高 MySQL 密碼安全性
More...
用 pv 查看 mysql restore 還原資料進度
More...
使用 sysbench 壓力測試 mysql
More...

作者

留言

撰寫回覆或留言

發佈留言必須填寫的電子郵件地址不會公開。