PHP的PDO物件或STMT物件執行包含注入的SQL語句
查看MYSQL日誌發現只是把第二個單引號轉義了
SELECT * FROM admin WHERE user = '123\' 或 1 = 1#'
而用C和其他語言呼叫libmysql.dll的原生API 日誌是這樣
select * from admin where user = X'313233'
處理方式是把參數轉換為十六進制
都是預處理底層處理為何會出現兩種不同的方式?
PHP封裝的預處理函數是否基於MYSQL的原生API?
百度另一種說法PHP的預處理是偽參數查詢(模擬預處理)但是百度這方面沒什麼介紹資料
這種說法是否屬實?
希望大神可以解惑 小弟再次謝過!
php大神,都在研究底層了
雖然聽不懂你在說什麼,但感覺好高端的樣子