【发布时间】:2011-06-28 15:10:33
【问题描述】:
我在阅读我值得信赖的 O'Reilly 书籍时偶然发现了一段关于 Mongo 如何从本质上避免类似 SQL 注入缺陷的泥潭。
在我的直觉中,我想我明白这一点。如果将未经处理的 var 传递到查询中,它们将无法通过 UNION、JOIN、查询转注释等突破面向文档的查询结构。
MongoDB 如何避免 SQL 注入混乱?仅仅是这种查询语法的本质吗?
【问题讨论】:
-
我认为没有人评论过使用解析中间件的潜在危险(例如
body-parser与 nodejsexpresslib)。如果您将 post 参数解析为 JSON(这很常见),然后将这些参数(或这些参数的属性)直接传递到 mongo 查询中,那么攻击者可以在您期望字符串/数字的位置插入一个 js 对象(例如他们可以通过{$gt:-1}并查看您收藏中的所有文档)
标签: sql mongodb sql-injection