我认为你知道sql注射,对于nosql也是如此,称为orm注射 我正在使用pymongo和mongodb,我有一个用户控制的输入用于简单的find()和一个带有$ regexp运算符的find。 我如何'消毒'那些投入?
答案 0 :(得分:1)
好吧,如果你谈到 ORM injections ,那么你说的是关系数据库系统,而不是真正的MongoDB或NoSQL系统。 PyMongo不是ORM工具,因此不会进行ORM注射。
MongoDB查找操作不会修改或删除集合中的任何数据。因此,您对不受信任的输入非常安全。
正如here所解释的那样,唯一可能发生的事情是,错误的查询可能会通过执行以下操作来降低系统速度:
{"$where": "function() { for (var i=0; i<1000000; i++) {}; return true; }"}
这意味着您可以在代码中确保没有通过用户参数传输任何功能。