php - 我需要使用 Doctrine 查询转义 Symfony2 上的字符串吗?

标签 php mysql symfony doctrine-orm

我有这个代码:
我从 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/

相关文章:

php - 按日期和时间以一小时为间隔对数据进行分组和统计

symfony - bundle 不存在: Symfony2

php - 我是否打算为 Laravel 中的中间表创建模型?

PHP/JS : Dynamic Dropboxes and echoing SELECTED value

PHP RESTful API 无法获取变量并崩溃

php - joinleft 中的 zend 选择查询

php - Laravel Eloquent 模型查询 `not null`

java - 当我说 Prepared 语句是预编译的是什么意思?

php - 强制奏鸣曲重建拇指

symfony - 表单事件监听器(如 TrimListener)如何将 "bound"映射到 Symfony 中的表单选项?