gpt4 book ai didi

mysql - 原则 2 DQL 安全

转载 作者:行者123 更新时间:2023-11-29 14:19:36 25 4
gpt4 key购买 nike

DQL 查询示例

<?php
$query = $em->createQuery('SELECT u FROM ForumUser u WHERE u.username = :name');
$query->setParameter('name', 'Bob');
$users = $query->getResult(); // array of ForumUser objects

上面的示例是一个参数化查询,其中 name 设置为 Bob。当我试图检查我们项目中的代码安全性时,我想询问学说社区的成员 createQuery 是否准备 sql 语句。

例如,将 ' OR 1=1-- 注入(inject)“name”参数会改变实体管理器创建的查询吗?

最佳答案

Doctrine 和使用 DBAL 的最大好处之一是注入(inject)保护。它将使用准备好的语句来不允许注入(inject)。尝试将该字符串添加到参数中不会导致查询发生更改。

我的 friend 想让我纠正自己,Doctrine 的最大好处不是它是 DBAL,而是它是 ORM。这是事实。

关于mysql - 原则 2 DQL 安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11971477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com