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