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 或語句永遠成立,所以前邊的查詢條件無論滿足與否都沒用了 ,很有意思吧