2017-11-06 29 views
0

REST APIを保護して、一部のユーザー/スクリプトによって生成された偽のリクエストを特定し、何百万というリクエストをサーバーに氾濫させるにはどうすればよいですか?偽の攻撃からのREST APIの保護

一部の人がスクリプトやプログラムを作成し、自分のREST APIへの呼び出しを何百万回も生成した場合、私のサービスがこれらの要求から保護され、APIが失われることはありません。私はcaptchaを使うことができますが、captchaは呼び出し元が人間の場合に便利です。呼び出し元がアプリケーションの場合、私はcaptchaを使用できません。そのようなシナリオを処理するためのフレームワークはありますか?

+0

実際のサービスに到達する要求の数を制限するか、一般的に要求を超えるブロックを制限する[漏れバケット](https://en.wikipedia.org/wiki/Leaky_bucket)アルゴリズムを実装することができます。後者は、IPあたりに受信された要求の数を単純にカウントアップし、一旦threasholdが超過されると、下流の物品のさらなる処理を防止するローカルショートライフキャッシュ(すなわち、5-10分)を利用することによって容易に達成することができる。 –

答えて

0

何あなたのサービスがDoS/DDoS攻撃と呼ばれているが発生しています。これは現在、Webサービスに対する最も一般的な攻撃の1つです。

このような攻撃を軽減する方法はたくさんあります。 は、あなたのAPIコンシューマが行った正当なリクエストを攻撃者/攻撃者が実行した悪意のあるリクエストから分離することに沸きます。そのような攻撃は、通常、リクエストが何らかの形で(IP範囲、HTTPヘッダーなど)互いに似ているように自動化されます。たとえば、攻撃が発生するIPの範囲を特定し、サービスのファイアウォールでブロックすることが、非常に簡単な方法です。

(D)DoSの防止について議論する記事がいくつかあります。 How do major sites prevent DDoS?またはWhat techniques do advanced firewalls use to protect againt DoS/DDoS?

サードパーティのサービス/製品は、APIの保護に役立つ場合があります。私はそれらを宣伝したくないので、ここで言及したくない。いくつかの検索をする必要があります。

幸運。

0

リクエストごとにトークンを渡すことができます。

このトークンは、任意の暗号化アルゴリズムを使用し、秘密鍵を使用してクライアントとRESTサービスの両方でトークンを暗号化および復号化する必要があります。

例:

Client request : What is the weather of Chennai ? Token : chennai + 123 (Key) 

Server Response : chennai123 : its valid : response 40 !! 

Here key is 123 it should not available in public 
+0

@bikkieが認証/承認を指しているとは思わない。 – jannis

関連する問題