本文全部內容轉載自月影無痕的博客http://zhangxugg-163-com.iteye.com/blog/1835721#bc2346092,感謝作者的分享
合理正確使用PDO,可以基本上防止SQL注入的產生,本文主要回答以下兩個問題:
a、為什麼要使用PDO而不是mysql_connect?
b、為何PDO能防注入?
c、使用PDO防注入的時候應該特別注意什麼?
一、為何要優先使用PDO?
提高相同SQL模板查詢性能
阻止SQL注入
二、為何PDO能防SQL注入?
為了徹底搞清楚php與mysql server通訊的細節,作者特別使用了wireshark抓包進行研究之。
三、使用PDO的注意事項
1、若使用php 5.3.6+, 請在在PDO的DSN中指定charset屬性
DSN中指定charset的作用是什麼? 只是告訴PDO, 本地驅動轉義時使用指定的字符集(並不是設定mysql server通信字符集),設置mysql server通信字符集,還得使用set names <charset>指令。
2、如果使用了PHP 5.3.6及以前版本,設置PDO::ATTR_EMULATE_PREPARES參數為false(即由MySQL進行變量處理);因Yii框架默認並未設置ATTR_EMULATE_PREPARES的值,請在數據庫配置文件中指定emulatePrepare的值為false。
PHP使用預處理PDO可以防止注入
可以用pdo進行預處理可以有效防止sql注入bgim
php中的pdo問題
說的面有點大了,安全這塊不光是SQL能做全的!
用PDO也要防SQL注入,你要對你用戶的輸入做檢查!!!!象單引號
php裡也有幾個方法也能用!也沒法告訴你全,看看資料吧,教程裡面一般都會說到這些的!