首页 > 解决方案 > 这个 Doctrine 查询 SQL 注入证明吗?

问题描述

我看到了这个(Symfony)Doctrine 查询。这是 SQL 注入证明吗?

$input = $_GET['input'];

$query = $connection->createQueryBuilder();
$query->select('id')->from('table')->where('name = ' . $input); // does Doctrine escape this input?
$statement = $query->execute();
var_dump($statement->fetchAll());
         

标签: mysqlsqlsymfonydoctrinesql-injection

解决方案


它不是。您必须使用带参数的准备好的查询。沿着这些线的东西:

$input = $_GET['input'];

$query = $connection->createQueryBuilder();
$query->select('id')->from('table')->where('name = :input'); 
$query->setParameter('input', $input)
...

推荐阅读