關於mysql預處理語句防注入底層處理問題
phpcn_u5077
phpcn_u5077 2017-06-15 18:24:58
0
2
1746

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的預處理是偽參數查詢(模擬預處理)但是百度這方面沒什麼介紹資料
這種說法是否屬實?

希望大神可以解惑 小弟再次謝過!

phpcn_u5077
phpcn_u5077

全部回覆(2)
美食控

php大神,都在研究底層了

  • 回覆 不是大神 碰到奇怪又有興趣的事喜歡刨根問底
    phpcn_u5077 作者 2017-06-16 07:31:17
shuffle

雖然聽不懂你在說什麼,但感覺好高端的樣子

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!