MySQL 初始化會創建匿名用戶(User=''),默認僅限 localhost,但擁有近乎 root 的權限,Web 應用若被上傳惡意腳本可利用該用戶提權。
mysql_connect('localhost', '', '')。-- 為匿名用戶設置強密碼(變相禁用直接登錄)
UPDATE mysql.user SET Password = PASSWORD('StrongP@ssw0rd') WHERE User = '';
-- 刷新權限生效
FLUSH PRIVILEGES;
-- 直接刪除匿名用戶
DELETE FROM mysql.user WHERE User = '';
FLUSH PRIVILEGES;
SELECT User, Host FROM mysql.user WHERE User = '';
-- 應返回空集
mysql_secure_installation,自動完成:刪除匿名用戶、禁止 root 遠程登錄、刪除 test 庫、重新加載權限。mysql.user 表,確保無空用戶名、無弱密碼、無過度授權帳號。