这个代码(在Doctrine2中)是否可以防止SQL注入?或者应该是$ _GET ['value'] 消毒?
$ret = $entityManager->getRepository('SomeEntity')->findOneBy(array('ID' => $_GET['value']));
谢谢
答案 0 :(得分:4)
它受SQL注入的保护。您可以找到源代码来查找,相关代码位于Doctrine\ORM\Persisters
- 命名空间,以及Doctrine\ORM\EntityRepository
和Doctrine\ORM\UnitOfWork
。
您的标准将转换为占位符,这也是编写自己的查询以防止SQL注入的推荐方法。