5

私は単純な REST API を構築していますが、JSON 入力のみを受け入れたいと考えています。app.use(express.json({strict: true}));の代わりに使用することを選択していますapp.use(express.bodyParser());。私はstrict: true、それが無効なjsonに対するセキュリティのレイヤーを追加すると考えています。他に似たようなことをしている人はいますか?このセットアップを経験した人の意見を探しています。ありがとう

4

1 に答える 1

2

アプリの攻撃領域を減らす可能性があるため、あなたのアプローチは問題ありません。しかし、bodyParser (不正な形式の JSON だけでなく、url エンコードおよび multipart-form エンコードされたデータも許可する) を使用することが意味のあるリスクになるという証拠があるかどうかはわかりません。

strict: trueここで正確に何を意味するかを見ることができます:

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

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

JSON が { または [ で始まるようにするだけです。RailsがYAMLで行ったように、V8でのJSON.parse実装を台無しにしないようにGoogleに頼っていますが、これは比較的安全な賭けだと思います.

于 2013-07-23T09:54:27.160 に答える