使用db.find()方法通过传递req.params对象来构建MongoDb查询安全吗?
有什么安全问题吗?
示例:
app.get('/trip/:id', function(req, res) {
Trip.find(req.params, function(err, user) {
if(err) return err;
return res.json({ user);
});
});假设params对象确实包含id值,它将如下所示:
{ id: '564a8e0cdc41d7736c70df0a' }在这样做的时候,MongoDb有什么安全问题吗?
发布于 2015-11-19 20:07:10
数据库查询的安全性问题与您给予查询多大自由度以及查询返回多少信息有关。如果你是通过id来查找一个项目,那么就通过id来检查它,如果你是通过另一个键来查找它,那么就通过那个键来检查它。
这并不局限于mongodb,但同样适用,只要确保你的lint响应不会抛出多余的信息即可。根据我的经验,mongodb不会比其他数据库面临更多的查询滥用风险。
我希望通过您提供的代码,我不能访问/users/:id并丢弃整个文档。
https://stackoverflow.com/questions/33748432
复制相似问题