0

我想你知道sql注入吗,和nosql一样,叫做orm注入。
我正在使用 pymongo 和 mongodb,我为简单的 find() 和使用 $regexp 运算符的查找提供了用户控制的输入。
我如何“清理”这些输入?

4

1 回答 1

1

好吧,如果你说的是ORM 注入,那么你说的是关系数据库系统,而不是真正的 MongoDB 或 NoSQL 系统。PyMongo 不是 ORM 工具,因此不会发生 ORM 注入。

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

正如这里所解释的,唯一可能发生的事情是错误的查询可能会通过执行以下操作来减慢您的系统速度:

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

这意味着您可以确保在您的代码中,没有函数通过用户参数传输。

于 2013-02-03T11:47:04.320 回答