相关疑难解决方法(0)

PDO MySQL:是否使用PDO :: ATTR_EMULATE_PREPARES?

这是我到目前为止所读到的PDO::ATTR_EMULATE_PREPARES:

  1. PDO的准备仿真对性能更好,因为MySQL的本机准备绕过了查询缓存.
  2. MySQL的本机准备更好于安全性(防止SQL注入).
  3. MySQL的本机准备更适合错误报告.

我不知道这些陈述是多么真实.选择MySQL接口时我最担心的是阻止SQL注入.第二个问题是表现.

我的应用程序目前使用过程MySQLi(没有预处理语句),并且使用了很多查询缓存.它很少会在单个请求中重复使用预准备语句.我开始转向PDO以获取已准备好的语句的命名参数和安全性.

我正在使用MySQL 5.1.61和PHP 5.3.2

我应该PDO::ATTR_EMULATE_PREPARES启用还是不启用?有没有办法既具有查询缓存的性能又具有预准备语句的安全性?

php mysql pdo

113
推荐指数
7
解决办法
5万
查看次数

PDO准备的陈述有多安全

不久前开始使用PDO准备好的语句,据我所知,它可以为您完成所有的转义/安全性.

例如,假设$ _POST ['title']是一个表单字段.

$title = $_POST['title'];
$query = "insert into blog(userID, title) values (?, ?)"
$st = $sql->prepare($query);
$st->bindParam(1, $_SESSION['user']['userID'], PDO::PARAM_INT);
$st->bindParam(2, $title);
$st->execute();
Run Code Online (Sandbox Code Playgroud)

这真的很安全吗?我还要做别的吗?还有什么需要考虑的?

谢谢.

php mysql security pdo sql-injection

42
推荐指数
2
解决办法
2万
查看次数

标签 统计

mysql ×2

pdo ×2

php ×2

security ×1

sql-injection ×1