Pymongo ORM注射?消毒输入

时间:2013-02-03 11:37:47

标签: python mongodb sql-injection pymongo sanitization

我认为你知道sql注射,对于nosql也是如此,称为orm注射 我正在使用pymongo和mongodb,我有一个用户控制的输入用于简单的find()和一个带有$ regexp运算符的find。 我如何'消毒'那些投入?

1 个答案:

答案 0 :(得分:1)

好吧,如果你谈到 ORM injections ,那么你说的是关系数据库系统,而不是真正的MongoDB或NoSQL系统。 PyMongo不是ORM工具,因此不会进行ORM注射。

MongoDB查找操作不会修改或删除集合中的任何数据。因此,您对不受信任的输入非常安全。

正如here所解释的那样,唯一可能发生的事情是,错误的查询可能会通过执行以下操作来降低系统速度:

{"$where": "function() { for (var i=0; i<1000000; i++) {}; return true; }"}

这意味着您可以在代码中确保没有通过用户参数传输任何功能。