在原则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();
请注意,我不只是寻求是或否的答案,而是是否有一些权威文档可以确保这是可以的。
我在这个页面上找到了我的答案:http://docs.doctrine-project.org/en/latest/reference/security.html#user-input-and-doctrine-orm。