my.ini 洩露密碼MySQL 驗證基於 mysql.user 表。新版安裝雖有快速設定視窗,但預設內容仍存風險:
SELECT host,user,password,Delete_priv FROM user;
+-----------+------+------------------+-------------+
| host | user | password | Delete_priv |
+-----------+------+------------------+-------------+
| localhost | root | 67457e226a1a15bd | Y |
| % | root | | Y | -- 危險:任何主機免密碼 root
| localhost | | | Y | -- 危險:本機匿名用戶全權限
| % | | | N | -- 危險:任何主機匿名用戶
+-----------+------+------------------+-------------+
驗證依賴「連線來源」與「用戶名」兩項。第 2、3、4 行均為高風險。
DELETE FROM user WHERE host='%';
DELETE FROM user WHERE user='';
FLUSH PRIVILEGES;
清理後僅保留:
+-----------+------+------------------+-------------+
| host | user | password | Delete_priv |
+-----------+------+------------------+-------------+
| localhost | root | 67457e226a1a15bd | Y |
+-----------+------+------------------+-------------+
為 % root 設定強密碼:
UPDATE user SET password=PASSWORD('yourpass') WHERE host='%';
FLUSH PRIVILEGES;