与Doctrine ODM(MongoDB)绑定参数



在Doctrine ODM MongoDB查询过程中有没有绑定参数的方法?

$path = $this->objectManager->getRepository("MyBundle:MyDocument")
    ->findOneBy(array("slug" => new MongoRegex("/^slug/")))
;

这将不必在上面出现段塞的地方进行字符串连接。

简而言之,您通常不必担心与SQL注入相同类别的字符串注入问题,因为发送到MongoDB服务器的请求是对象格式(BSON),而不是像SQL这样的字符串格式。

典型的SQL注入攻击涉及操纵将连接到SQL查询字符串中的变量。SQL绑定参数是通过转义和/或类型检查来限制可接受值的变量的占位符。在BSON格式中,查询的方面以对象格式保存,该格式将值的范围限制在该字段。

如果您正在为服务器端JavaScript执行传递值,例如在$where查询中,那么在过滤用户提供的输入时必须小心。服务器端JavaScript通常不受欢迎,因为它可能会对性能产生一些不利影响。

有关更多信息,请参阅MongoDB wiki页面"我必须担心SQL注入吗?"。当然,MongoDB中实际上不支持SQL,所以这个页面的名称应该更恰当地命名为"我应该担心参数注入攻击吗";-)。

相关内容

  • 没有找到相关文章

最新更新