最近有個(gè)比較嚴(yán)重的問(wèn)題,就是關(guān)于mysql用戶密碼的安全性問(wèn)題。有人發(fā)現(xiàn),只要輸入了一個(gè)任意密碼,就能成功登錄到mysql數(shù)據(jù)庫(kù)的問(wèn)題。這個(gè)問(wèn)題具體原因是什么呢?
mysql -u root -p
這是很多開(kāi)發(fā)者常用的mysql登錄命令,也是導(dǎo)致問(wèn)題的關(guān)鍵。在使用這個(gè)命令登錄mysql時(shí),會(huì)讓用戶輸入密碼,如果用戶輸入了錯(cuò)誤的密碼,mysql會(huì)提示access denied。但是如果輸入的密碼是任意的,無(wú)論是直接按回車(chē),還是輸入了一些亂碼,都可以成功登錄到mysql。
問(wèn)題就出現(xiàn)在這里,mysql在判斷密碼是否正確時(shí),只判斷了輸入的字符數(shù)量,而沒(méi)有判斷輸入的字符是否正確。所以只要輸入了任意字符,mysql就會(huì)判斷密碼正確,這就導(dǎo)致了用戶密碼可以被隨便猜測(cè)。
那么這個(gè)問(wèn)題該怎么解決呢?解決方法很簡(jiǎn)單,就是在登錄mysql時(shí)加上參數(shù)“-p”后面跟上密碼,這樣mysql就會(huì)判斷輸入的密碼是否正確。
mysql -u root -p[password]
加上這個(gè)參數(shù)后,mysql就會(huì)判斷輸入的密碼是否與正確的密碼一致,這樣就避免了密碼可以被隨便猜測(cè)的問(wèn)題。