Doctrine2 FindOneBy和SQL Injection

时间:2012-03-05 21:35:42

标签: doctrine-orm

这个代码(在Doctrine2中)是否可以防止SQL注入?或者应该是$ _GET ['value'] 消毒?

$ret = $entityManager->getRepository('SomeEntity')->findOneBy(array('ID' => $_GET['value']));

谢谢

1 个答案:

答案 0 :(得分:4)

它受SQL注入的保护。您可以找到源代码来查找,相关代码位于Doctrine\ORM\Persisters - 命名空间,以及Doctrine\ORM\EntityRepositoryDoctrine\ORM\UnitOfWork

您的标准将转换为占位符,这也是编写自己的查询以防止SQL注入的推荐方法。