2010-11-12 48 views
11

在Java中有避免mongoDB注入攻击的常见模式吗?mongoDB注入

感谢

+1

您能否用您打算与mongo连接的语言来澄清您的问题? – 2010-11-12 18:48:02

+0

问题已更新 – Mark 2010-11-13 16:25:25

回答

16

使用其中一个受支持的驱动程序。不要将字符串反序列化为JSON并将它们作为查询传递,例如不”做到这一点(在Ruby中):

collection.send(query_type, JSON.parse(parameters)) 

其中query_typeparameters是从表单来的字符串。尽管如此,你将不得不犯罪。

由于没有查询语言,因此没有相同的注射空间。 SQL注入攻击可能的部分原因是要采取的操作(SELECT,UPDATE,DELETE等)是查询字符串的一部分。 MongoDB和许多其他较新的数据库不能像那样工作,而是该操作是API的一部分。在SQL驱动程序只有query和某些情况下exec,MongoDB有find,update,insertremove

1

大部分车手都在这里您构建查询,BSON文档的语言表示的设置。你打算用什么语言来使用mongo?

1

是的,通过使用正则表达式搜索。例如:假设您通过用户名进行检查,并且您没有使用EQ操作。 如果我通过[a-z]例如,我将绕过您的登录操作:)。

但无论如何,它非常依赖于解决方案中如何实现事物的逻辑。