【发布时间】:2016-07-11 10:52:49
【问题描述】:
有没有办法在 PDO 中禁用多个语句查询?一种适用于所有支持的驱动程序的方法?
或者,是否有任何众所周知的过滤器可以检测字符串中的多个语句?
我知道prepared statements可以更好地防止SQL注入风险,在这种情况下我不能使用它们是有原因的。
【问题讨论】:
-
抛开正则表达式或模拟查询,我认为你仍然应该使用准备好的语句,否则鲍比可能会生气。 bobby-tables.com,bobby-tables.com/php.html。为什么你不能使用它们?你能解释一下这背后的背景吗?
-
相信我,整个场景真的太复杂了,无法在这里用几句话来解释。鲍比不会生气。举个极端的例子:假设用户被允许在表单中编写并执行任意查询。这里没有参数,即没有准备好的语句方法,对吧?是否可以防止多个语句?
-
如果允许用户写任何东西,他们为什么要关心多个语句?为什么不在允许他们的单一语句中写他们想要的任何东西?
-
不能使用prepared statements的原因是什么?
-
您到底想达到什么目的?您已将问题标记为安全,这与您的问题有什么关系?