【发布时间】:2013-02-03 11:37:47
【问题描述】:
我想你知道sql注入吗,nosql也一样,叫做orm注入。
我正在使用 pymongo 和 mongodb,我为简单的 find() 和使用 $regexp 运算符的查找提供了用户控制的输入。
如何“清理”这些输入?
【问题讨论】:
标签: python mongodb sql-injection pymongo sanitization
我想你知道sql注入吗,nosql也一样,叫做orm注入。
我正在使用 pymongo 和 mongodb,我为简单的 find() 和使用 $regexp 运算符的查找提供了用户控制的输入。
如何“清理”这些输入?
【问题讨论】:
标签: python mongodb sql-injection pymongo sanitization
好吧,如果您说的是 ORM 注入,那么您说的是关系数据库系统,而不是真正的 MongoDB 或 NoSQL 系统。 PyMongo 不是 ORM 工具,因此不会发生 ORM 注入。
MongoDB 查找操作不会修改或删除集合中的任何数据。因此,使用不受信任的输入是非常安全的。
正如here 所解释的那样,唯一可能发生的事情是错误的查询可能会通过执行以下操作减慢您的系统速度:
{"$where": "function() { for (var i=0; i<1000000; i++) {}; return true; }"}
这意味着您可以确保在您的代码中,不会通过用户参数传输任何函数。
【讨论】: