原则 2 ORM 和 SQL 注入



在原则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。

相关内容

  • 没有找到相关文章

最新更新