PDO防注入的一點積累

Alan發表於2019-02-16

為什麼使用PDO

合理使用PDO可以根本上杜絕sql注入

一些引數配置

PDO::MYSQL_ATTR_INIT_COMMAND引數的意義是在查詢sql之前,先傳送初始化命令:set names utf8mb4

PDO::ATTR_EMULATE_PREPARES 表示是否使用本地模擬prepare,不要使用本地模擬,所以設定為false

最佳實踐:

設定ATTR_EMULATE_PREPARES為false
設定PDO::MYSQL_ATTR_INIT_COMMAND為true,pdo會預設使用set names utf8設定編碼
使用高版本的php(php7+)
使用高版本的mysql
使用合理的編碼,棄用GBK編碼,防止寬字元注入

相關文章