2

我有这段代码:
我从 GET 请求中获取了一些数据:

$username = $request->get('username');

然后,我使用学说来检查这个用户名是否存在:

$found = $em->getRepository('Bundle:Users')->findByNick($username);
            if ($found){
               //nickname in use
            } else {
               //not found
            }

如您所见,我没有 String 转义,因此该值直接发送到 Doctrine。这是一个安全问题吗?是否应该出于安全原因削减它?
请注意,我从不使用 RAW 查询,只使用 Doctrine 中的预构建查询。

4

1 回答 1

4

无需使用准备好的语句来执行此操作。

你可以在这里阅读:http: //docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/security.html

我已经试过了。这是 Doctrine 生成的查询:

WHERE t0.nick = 'dasdfaf\\' OR 1'

如您所见,添加了几个斜线。

于 2013-08-18T16:53:34.070 回答