使用express.json而不是express.bodyparser
我正在构build一个简单的REST API,我只想接受JSONinput。 我select使用app.use(express.json({strict: true}));
而不是app.use(express.bodyParser());
。 我正在通过strict: true
想法,这将增加一层针对无效json的安全性。 任何人做类似的事情? 寻找来自具有此设置经验的人的意见。 谢谢
你的方法很好,因为你有可能减less你的应用程序的攻击区域。 但是,我不确定是否有任何证据表明使用bodyParser(这将允许一些格式不正确的JSON,以及url编码和多部分forms编码的数据)将是任何有意义的风险。
你可以看到究竟是什么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实现,我认为这是一个相对安全的select。