如何防止JavaScript NoSQL注入MongoDB?
我正在研究Node.js应用程序,我将req.body(一个json对象)传递给mongoose模型的save函数.我认为幕后有保护措施,但事实并非如此.
解决方法:
注意
我的回答是不正确的.请参考其他答案.
–
当客户端程序在MongoDB中组装一个查询时,它会构建一个BSON对象,
不是一个字符串.因此传统的SQL注入攻击不是问题.
有关详细信息,请参阅documentation
UPDATE
避免表达像eval那样可以执行任意JS.如果您正在从用户那里获取输入并运行eval之类的表达而不清理输入,则可能会搞砸.正如JoBu1324所指出的那样,诸如where,mapReduce和group之类的操作允许直接执行JS表达式.