2011-10-23 17 views
4

私は自分のアプリケーションに2 POST、1 PUT、1 DELETE APIを持っています。私のアプリケーションはHerokuにデプロイされています。私はこれらのAPIを制限したいと思いますが、DOS攻撃や誤って誰かがAPIを無限ループで呼び出すことを防ぐためにのみ制限します。このシナリオの理想的なレート制限はいくらですか?例えば。 1分あたりのx、1時間あたりのy。 xとyのアイデア番号は何ですか?DOS攻撃(Heroku)を防止するためのレート制限

答えて

0

これは実際にあなたのアプリに依存します。

1)それはあなたのアプリケーションがどのように「重い」に依存します、

ご要望の各プロセッサ-重いおよび/またはデータベースがたくさんヒットした場合、その後、あなたが下限を設定することをお勧めします各リクエストは「高価」であるためです。あなたのアプリが速くて効率的な場合は、より多くの機動力があり、より高いAPI制限を設定することができます。

2)アプリの使用状況によって異なります。

あなたのアプリは、使用するには多くのAPIヒットが必要ですか? APIの制限は、アプリが提供する機能にどのように影響しますか?

3)使用しているプロセッサの数によって異なります。

ヘロクでは、ウェブダイナモとワーカーダイノスを設定することでアプリを拡大縮小できます。より多くのAPIを使用すれば、APIの上限を上げることができます。

いずれにしても、あなたがDOSを実行したり、APIを無限ループで呼び出されないようにしたい場合、APIの制限が悪い人だけでなく悪い人にも影響するため、これは間違ったアプローチです。より良い方法は、不正な動作を検出し、適切に対応することです(制限されたIPアドレスを制限時間内に拒否する)。

2

3scale APIプラグイン(https://github.com/3scale/3scale_ws_api_for_ruby)をドロップする方法の1つは、レート制限を適用したり、外部インフラストラクチャを使用して分析などを行うことです。

このようにして、個々のユーザーを制限することができ、それぞれのユーザー(およびすべてのサインアップなど)に異なるクォータを割り当てることができます。

未認証のリクエストであってもまだあなたに届くので、真のDOSを厳密に阻止することはできませんが、ダメージを最初にやっている人々をあなたのスタックに落として+止めるでしょう。

関連する問題