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 に悪意のあるコードが含まれている可能性があります。チェックを追加する必要がありますか、それともチェックで十分ですか? 説明されているようにコードを使用した場合、攻撃者にどのような攻撃ベクトルを提供しますか?
アドバイスありがとうございます