使用MongoDB db.find()和Express 4.0 req.params的安全性



使用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是否存在任何安全问题?

数据库查询安全问题与您给予查询的自由度以及查询返回的信息量有关。如果你正在按id查找物品,请按id进行检查;如果你正在用另一个密钥查找,请按该密钥进行检查。

这并不局限于mongodb,而是同样适用,只是确保您整理响应,并且不会抛出多余的信息。根据我的经验,mongodb并不比其他数据库更容易被滥用查询。

我希望通过您提供的代码,我无法转到/users/:id并将整个文档转储。

最新更新