PDO防注入的一点积累

为何使用PDO

合理使用PDO能够根本上杜绝sql注入php

一些参数配置

PDO::MYSQL_ATTR_INIT_COMMAND参数的意义是在查询sql以前,先发送初始化命令:set names utf8mb4mysql

PDO::ATTR_EMULATE_PREPARES 表示是否使用本地模拟prepare,不要使用本地模拟,因此设置为falsesql

最佳实践:

设置ATTR_EMULATE_PREPARES为false
设置PDO::MYSQL_ATTR_INIT_COMMAND为true,pdo会默认使用set names utf8设置编码
使用高版本的php(php7+)
使用高版本的mysql
使用合理的编码,弃用GBK编码,防止宽字符注入php7

相关文章
相关标签/搜索