【发布时间】:2013-10-26 09:00:53
【问题描述】:
我一直在查看本教程以获取有关切换到 PDO 的帮助:http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers
但是,只有一件事我找不到。
假设我有一个名为“用户”的文本输入表单
那么,PDO 的 PHP 代码会如下所示:
$name = $_POST['name'];
$stmt = $db->prepare("INSERT INTO table(name) VALUES(?)");
$stmt->execute(array($name));
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
基本上我要问的是这是否安全。我知道 PDO 与 mysql_* 不同,因为您不再使用 mysql_real_escape_string,但我需要做的就是确保不会将恶意数据放入数据库吗?
【问题讨论】:
-
这就是 PDO 诞生的原因。
-
值已为您转义
-
使用 pdo 代替旧的 mysql 过程式函数更安全。 pdo 类将为您完成主要的字符串转义和清理。
-
仿真模式和原生模式一样安全。
-
防止执行 mysql 查询 - 准备好的语句就足够了,你应该对所有查询使用它们,你应该对所有参数使用
?,但不要忘记其他可能的安全问题:交叉- 站点脚本等