避免使用MongoDB的c#驱动程序进行代码注入

时间:2011-05-09 16:58:11

标签: mongodb code-injection mongodb-.net-driver

我有以下代码检查集合中是否已存在用户输入的电子邮件:

MongoDatabase authdb = DatabaseManager.GetDatabase("authdb");
var userDocuments = authdb.GetCollection<UserDocument>(UserDocument.CollectionName);
var doc = userDocuments.FindOne(new QueryDocument("email", email));

我有点使用用户提供的值(电子邮件)为各种注入提供了机会,有点像SQL注入。这是一个真正的问题,然后如何处理它?<​​/ p>

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

正如文档所述,您需要注意的最大区域是db.eval()。驱动程序的.eval()方法将转换为等效的javascript .eval函数。在javascript中使用.eval时要特别小心,因为它执行()中的代码。