Doctrine2 FindOneBy 和 SQL 注入

use*_*536 1 doctrine-orm

这段代码(在 Doctrine2 中)是否能够防止 SQL 注入?或者应该对 $_GET['value'] 进行清理?

$ret = $entityManager->getRepository('SomeEntity')->findOneBy(array('ID' => $_GET['value']));
Run Code Online (Sandbox Code Playgroud)

谢谢

Pat*_*and 5

它可以防止 SQL 注入。你可以通过查看源码来找到这一点,相关代码位于 -namespaceDoctrine\ORM\Persisters以及Doctrine\ORM\EntityRepository和中Doctrine\ORM\UnitOfWork

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