我有这个代码:
我从 GET 请求中获取一些数据:
$username = $request->get('username');
然后,我使用doctrine来检查这个用户名是否存在:
$found = $em->getRepository('Bundle:Users')->findByNick($username);
if ($found){
//nickname in use
} else {
//not found
}
正如你所看到的,我没有字符串转义,所以该值直接发送到 Doctrine。这是安全问题吗?出于安全原因应该削减它吗?
请注意,我从不使用 RAW 查询,只是使用 Doctrine 预构建的查询。
最佳答案
不需要使用准备好的语句来做到这一点。
您可以在这里阅读:http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/security.html
我已经尝试过了。这是 Doctrine 生成的查询:
WHERE t0.nick = 'dasdfaf\\' OR 1'
如您所见,添加了几个斜杠。
关于php - 我需要使用 Doctrine 查询转义 Symfony2 上的字符串吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18301316/