2

node.js プロジェクト用の画像アップローダーを実装する必要がありました。フレームワークとして、 express.jsを使用しています。

しかし、この画像アップローダを保護する方法がわかりません。これまでに行ったことは次のとおりです。

  • ファイルサイズの確認
  • 拡張子とヘッダーのチェック
  • ファイルの名前を変更する
  • ファイルは特別なルートを介してのみアクセス可能であり、ルート フォルダーにはありません

これで十分ですか?次の行はあまり快適ではありません。

    // CHECKING FOR FILESIZE, EXTENSION, HEADERS
    fs.readFile(req.files.displayImage.path, function (err, data) {
        ...
        ...
        ...
        // RENAMING FILE
        // SAVE FILE
        ...
        ...
        ...
    }

このように画像を読むのは保存されますか?残念ながら、req.files.displayImage.path に悪意のあるコードが含まれている可能性があります。チェックを追加する必要がありますか、それともチェックで十分ですか? 説明されているようにコードを使用した場合、攻撃者にどのような攻撃ベクトルを提供しますか?

アドバイスありがとうございます

4

1 に答える 1

0

コメントに投稿されているように、クライアント側で悪意のある画像を開くことを懸念している場合。サンドボックス化された iframe 内でサードパーティのスクリプトと信頼できないファイルを開いてみてください。これにより、ユーザーが保護されます。

于 2018-08-15T12:21:53.723 に答える