sql注入問題 java中將MySQL的數據庫驗證秘密加上 ' or '1'= '1 就可以出現萬能密碼


password的字符串中,加上 ' or '1'= '1 就可以制作出萬能密碼。

原因如下:

原代碼中密碼是123456

執行數據庫查詢語句

實際上執行的SQL語句是:

select * from sw_user where username='swift' and password='123456'

這是需要賬號密碼都正確才能登陸成功

如果有人將密碼設置成這樣的密碼,則成了萬能密碼,什么樣的用戶名和密碼都會登陸成功,如下圖:

就是在任意密碼后加上 ' or '1'='1 就可以了,任意賬號和密碼加上后都可以登陸成功,這是sql數據庫的注入,原因是執行的sql語句變成了:

還是上邊這條語句,實際上執行的是

select * from sw_user where username='swift' and password='123456' or '1'='1'

后邊的or 或語句永遠成立,所以前邊的查詢條件無論滿足與否都沒用了 ,很有意思吧

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM