4

在学说 2 中,如何在使用 ORM 时防止 sql 注入?我在教义网站上找到了以下页面:http: //docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/security.html

然而,这是关于 dbal 而不是关于 ORM。

假设 $id 是发布值,使用下面的内容是否安全?

$entityManager->getRepository('Product')->find($id);

或者使用这样的命名参数创建查询是否更好:

// DQL Prepared Statements
$dql = "SELECT p FROM Product p WHERE p.id = ?1";
$query = $em->createQuery($dql);
$query->setParameter(1, $_GET['pid']);
$data = $query->getResult();

请注意,我不只是寻求是或否的答案,而是是否有一些权威文档可以确保这是可以的。

4

1 回答 1

4

我在这个页面上找到了我的答案:http: //docs.doctrine-project.org/en/latest/reference/security.html#user-input-and-doctrine-orm

于 2014-03-17T12:23:48.453 回答