2016-07-14 15 views
1

node.jsに、エクスプレスとバスボーイを使用してドキュメントをアップロードできるアプリを構築しています。ユーザーは1回のアップロードで複数のドキュメントをアップロードできますが、合計ファイルサイズは20MBに制限されています。node.jsユーザのリクエスト数を制限する

ユーザーが一定の時間内に複数のアップロードリクエストを行うのを防ぐことはできますか?私の懸念は、誰かが簡単に20MB(アップロードあたりの制限)をアップロードするためのスクリプトを書いて、この100倍を何分か何度か繰り返すことができるということです。 30秒または1分に1回しかアップロードできないようにするのが理想的です。

+1

私はあなたを信じて最終的に何らかの[レート制限](https://en.wikipedia.org/wiki/Rate_limiting)を求めています... –

答えて

0

これはさまざまな方法で実装できますが、私にとって最も合理的なアプローチは、ユーザーあたりの合計アップロード制限、または特定のユーザー新しいファイルセットをアップロードすることができます。

スタックに関する詳細をご提供いただければ、おそらく一部のコードを取り除くのに役立つでしょう。

0

あなたはそれ

  1. app.use('/upload', upload-middleware, req-res-func)
  2. upload-middlewareは、クッキー/セッションIDの/ etcと保存された前回のアップロード時間分だけのcalcユーザーをreq受信確認するためのミドルウェアを使用することができます。現在の要求時刻と前の時刻が一致している場合は、next(new Error('Upload error...'))を呼び出して、再要求機能への転送要求にはnext()を呼び出します。
0

あなたはIPによる制限を評価したい場合は、このモジュールはパスで、ルールを適用する機能(例えば、あなたのアップロード機能)など、さまざまな設定を追加します。

https://www.npmjs.com/package/express-rate-limit

関連する問題