沒用預處理,語句參數相當于把表單提交的數據當參數傳遞之后拼接成完整語句再查詢,在執行的時候執行了別的語句。比如例子中的那個語句,本來是selete * from user where username=[參數1] and password=[參數2],但是拼接了用戶傳遞的參數之后,執行時候是:select * from user where username='' or 1=1 # and password =[參數2],#之后相當于注釋了,實際執行的就是select * from user where username='' or 1=1,而1=1為真,or true 返回true,所以實際返回的是整個表的數據。所以結果集不為0,故而顯示登錄成功。
2017-06-15
沒用預處理,語句參數相當于把表單提交的數據當參數傳遞之后拼接成完整語句再查詢,在執行的時候執行了別的語句。比如例子中的那個語句,本來是selete * from user where username=[參數1] and password=[參數2],但是拼接了用戶傳遞的參數之后,執行時候是:select * from user where username='' or 1=1 # and password =[參數2],#之后相當于注釋了,實際執行的就是select * from user where username='' or 1=1,而1=1為真,or true 返回true,所以實際返回的是整個表的數據。所以結果集不為0,故而顯示登錄成功。
2016-11-09
因為沒有定義用戶名和密碼是用什么樣的數據類型,例如字符串,整型,浮點型,布爾類型