PDO中的参数化查询是否是请求变量所必需的?

时间:2012-08-09 10:14:54

标签: php url pdo

据我所知,当用户提交的数据处于徘徊状态时,参数化查询是必不可少的,但我的问题是这是否适用于用户可调数据?

因此,如果我们有一个诸如" ... /?id = 1"之类的网址,是否有必要使用$ id准备任何语句或者网址编码是否会删除威胁?

2 个答案:

答案 0 :(得分:4)

为什么不会你对所有有外部/变量输入的情况使用预备语句/参数化查询?

您可以信任的唯一查询是每个元素都是硬编码的,或者是从应用程序中的硬编码元素派生的。

甚至不相信您从自己的数据库中提取的数据。这算作外部/可变数据。复杂的攻击可以使用更多的向量而不是简单的修改查询字符串参数"。

我认为对于少量的额外代码开销,完全值得您从知道您的查询受到保护后可以放心。

答案 1 :(得分:0)

网址编码不会删除威胁。

任何可被用户触摸的东西都应被视为不安全和潜在的威胁。您按id查询并未对其进行验证,只是将其直接推送到查询中仍然会导致与不使用PDO相同的注入问题。