【发布时间】:2011-10-18 09:58:43
【问题描述】:
所以我正在研究整个 PDO 的事情,当我遇到这段代码时,我正在阅读这篇博客教程,解释是如果我将 PDO 与数据绑定一起使用 - 用户将无法添加 SQL 注入。这是如何工作的?
# 没有占位符 - SQL 注入的时机已经成熟! $STH = $DBH->("INSERT INTO peoples (name, addr, city) values ($name, $addr, $city)"); # 未命名的占位符 $STH = $DBH->("INSERT INTO peoples (name, addr, city) values (?, ?, ?); # 命名占位符 $STH = $DBH->("INSERT INTO peoples (name, addr, city) value (:name, :addr, :city)");这是我从网站获得的链接,以防您想阅读以供参考。 http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/
【问题讨论】:
-
它们只是非常草率的例子。他们甚至不会跑。它们缺少
->query和->prepare方法调用等。 -
因为命令和数据是分开传输的。 (对于那些支持它/启用时的后端。)
标签: php mysql sql security pdo