我有这段代码:
我从GET请求中获得了一些数据:
$username = $request->get('username');
然后,我使用doctrine检查此用户名是否存在:
$found = $em->getRepository('Bundle:Users')->findByNick($username);
if ($found){
//nickname in use
} else {
//not found
}
如您所见,我没有String转义,因此该值直接发送给Doctrine。这是安全问题吗?是否应该出于安全原因进行大幅削减? 请注意,我从不使用RAW查询,只是预构建来自Doctrine的查询。
答案 0 :(得分:4)
没有必要用准备好的陈述来做。
您可以在此处阅读:http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/security.html
我已经尝试过了。这是由Doctrine生成的查询:
在哪里t0.nick ='dasdfaf \\'或1'
如您所见,添加了几个斜杠。