使用express.json而不是express.bodyparser

时间:2013-07-23 09:29:12

标签: node.js express connect

我正在构建一个简单的REST API,我只想接受JSON输入。我选择使用app.use(express.json({strict: true}));代替app.use(express.bodyParser());。我正在通过strict: true认为这将为无效的json添加一层安全性。其他人做类似的事吗?寻找有此设置经验的人的意见。 感谢

1 个答案:

答案 0 :(得分:2)

您的方法很好,因为您可能会减少应用上的攻击区域。但是,我不确定是否有任何证据表明使用bodyParser(这将允许一些格式错误的JSON,以及url编码和多部分格式的编码数据)将是任何有意义的风险。

您可以在此处看到strict: true的确切含义:

http://www.senchalabs.org/connect/json.html

if (strict && '{' != buf[0] && '[' != buf[0]) return next(utils.error(400, 'invalid json'));

它只是确保JSON以{或a [。你仍然依赖Google不要像Rails那样用YAML搞砸他们在V8中的JSON.parse实现,我认为这是一个相对安全的赌注。