orm - 学说 2 orm 和 sql 注入(inject)

标签 orm doctrine-orm sql-injection database-security

在学说 2 中,如何在使用 ORM 时防止 sql 注入(inject)?我在教义网站上找到了以下页面:
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();

请注意,我不只是寻求是或否的答案,而是是否有一些权威文档可以确保这是可以的。

最佳答案

关于orm - 学说 2 orm 和 sql 注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21182704/

相关文章:

java - 使用 Spring Data 时如何确定是否插入重复项?

postgresql - 让 Doctrine 2 ORM 通过针对具有连接的表的自定义查询来混合对象

symfony - Doctrine "A new entity was found through the relationship"错误

.net - 包含 1000 多个表的数据库的 ORM

python ORM 允许创建表和批量插入吗?

symfony - 具有关系的实体中的JMSSerializerBundle序列化组

mysql - 如何设计 Doctrine 2 实体

php - 如何防止 PHP 中的 SQL 注入(inject)?

java - SQL 注入(inject)通常如何在 Spring/Hibernate 设置中停止

php - 防止PHP中变量数组的SQL注入(inject)