【发布时间】:2010-09-20 09:55:52
【问题描述】:
public function receiveDomainNames($keyword)
{
try
{
$stmt = $this->_dbh->prepare("SELECT d.someField FROM domain d WHERE d.someField LIKE :keyword");
$someField = '%'.$keyword.'%';
在这种情况下我们需要转义 $keyword 吗?
在php手册上我们可以阅读:
如果应用程序专门使用准备好的语句,开发人员可以 确保不会有 SQL 注入 发生(但是,如果其他部分 查询正在建立 未转义的输入,SQL 注入是 仍然可能)。
您认为是这种情况吗,在这种情况下,是否建立了非转义输入(没有对我们的 $keyword 参数进行事先处理)?
提前致谢, 内存
【问题讨论】:
-
实际上,我在 $keyword 参数上使用了带有 FILTER_SANITIZE_STRING 的 filter_input(在他到达这里之前) - 所以我相信那里不需要转义?
标签: pdo prepared-statement escaping