php Symfony SQL注入

zxlwwiss  于 2023-06-21  发布在  PHP
关注(0)|答案(1)|浏览(104)

大家好!
我目前正在修复一个应用程序中的一个bug,有一段代码我有一个问题。

$query = $this->em->createQuery(
            "SELECT client FROM App\\Entity\\Gescom\\Client client WHERE client.name LIKE CONCAT('%', :query, '%')"
        )
            ->setFirstResult(($request->get('page') - 1) * $request->get('page_limit'))
            ->setMaxResults($request->get('page_limit'));
        $query->execute([
            'query' => $request->get('q') . '%'
        ]);

关于这一行:

$query->execute([
            'query' => $request->get('q') . '%'
        ]);

是否存在SQL注入问题或它是否安全?
我已经在网上搜索过了,但是我找不到我问题的答案。execute()是否可以防止所有SQL注入,即使我在其中连接了一些东西?

7lrncoxx

7lrncoxx1#

传入execute()的是参数名及其值的列表,然后数据库引擎将其安全地放入SQL语句中,以代替匹配的命名占位符(在SQL语句中标记为:)。
因此,在本例中,您实际上没有将任何内容连接到SQL中,而是正确地提供了一个单独的SQL语句和参数值列表。数据库引擎将确保参数化的值永远不会被视为可执行SQL的片段。
因此,是的,它应该是安全的SQL注入。

相关问题