2

ここでわかるように: https://github.com/visionmedia/express/blob/master/examples/multipart/index.js Express はデフォルトでファイルのアップロードをサポートし、アップロードされた各ファイルを一時フォルダーに保存して後で使用できるようにします。

私の質問は:安全ですか?

私が見ているように、攻撃者は一時フォルダーを制御することなく、すべての一時フォルダーをガベージ ファイルでいっぱいにすることができます。各 POST リクエストを確認し、未使用のファイルを削除する必要がありますか?

4

1 に答える 1

1

あなたの問題に対する2つの解決策を提案させてください。

  1. アップロード先には仮想ドライブを使用してください。サーバーが Linux で実行されている場合、メモリのみにある仮想ファイル システムをマウントするのは非常に簡単です。ファイルは、実際のハードドライブにある場合よりも速くここに配置されます。説明したような問題がある場合は、仮想ドライブを消去するか、サーバーを再起動するだけです. RAM ディスクの説明については、この記事を参照してください
  2. 24 時間の間に同じ IP アドレスから最大数のアップロードのみを受け入れるようにしてください。最大の効果を得るには、このソリューションをソリューション 1 と組み合わせてください。これを実装する 1 つの方法は、各 IP アドレスのアップロード カウントを持つグローバル オブジェクトを用意し、24 時間ごとにクリアすることです。

    var uploads = {}
    setInterval(function(){
     uploads = {}
    }, 24*60*60*1000); //Run every 24 hours
    
    var onUpload = function(request, file){
      if(uploads[req.ip] > maxUploadsAllowedPrUser)
        fs.unlink(file) //Delete the file
      else
        uploads[req.ip]++ //Keep the file, and increase count
    }
    
于 2013-03-07T21:26:16.170 に答える