我们说我的MongoDB数据库中有两个集合,一个HTTP服务,用户可以使用它来提交JSON对象。解析后的json然后使用如下:
db.public_collection.find( user_json ).limit(10)
这是由没有写访问权限的RBAC用户执行的。
使用$ where运算符,用户可以:
答案 0 :(得分:0)
这不是一个好主意。请参阅Testing for NoSQL Injection和NoSQL injection in MongoDB,了解如何通过将javascript函数注入查询来创建拒绝服务攻击,以及泄漏您没有打算让用户拥有的信息访问。
答案 1 :(得分:-1)
您的RBAC设置将控制对HTTP服务的访问。在函数中使用mongo find方法将不允许对该特定集合进行任何查找/读取操作。没有什么能阻止用户指定昂贵的查询。但是,跨越单个集合的查询不太可能非常昂贵,并且您将结果限制为10。