【发布时间】:2012-02-06 15:15:39
【问题描述】:
我能尽快澄清一下吗,只是我正在进行的讨论:
以此为例:
$conn->prepare ( 'SELECT * FROM table WHERE id = "' . $_POST['id'] . '"' );
不是否防止 SQL 注入,您必须在放入准备语句之前绑定参数或清理值吗?还是我错了,直接使用prepare就可以了?
【问题讨论】:
-
@AshleyBanks:我认为向其他人解释它的最简单方法是在您的示例中没有将查询和参数分开(这是防止注入的原因)您只是合并所有内容进入查询(你好注入!)。 DB引擎对自己说,这个位是查询,这个位是参数,它们不能改变角色,不能合并在一起。如果他们仍然不明白,那么真实的例子就可以解决问题,毕竟眼见为实。