2017-03-25 6 views
0

私はAzure App ServiceでホストされているASP.Netサイト(Web API 2を使用していますが、それは問題ではありません)を持っています。ASP.NetのIPスロットル

1つのIPアドレスからの要求が多すぎるのを防ぐために、IPスロットリングを実装したいと考えています。 App ServicesにはDDOS保護機能が組み込まれていることがわかりますが、スクレイピングなどを防ぐこともできます。

+0

Redis Cacheインスタンスを使用することで、複数のWebフロントエンドであってもスロットルを実装することはかなり簡単です。 Global.asax.csファイルに、Application_BeginRequestメソッドを追加して、IPアドレスからの要求のタイムスタンプを記録します。キャッシュから古いエントリを削除するには、自動有効期限を使用することをお勧めします。特定の期間にIPアドレスのX個以上のエントリがある場合は、HTTP 429 Too Many Requests応答を返します。 –

答えて

0

この機能はASP.NetまたはAzure App Servicesには組み込まれていないようです。

つのオプション:

  • 使用Azure API Management - これはバックエンドの前でプロキシとして動作します。その機能の大部分は他の開発者が消費するAPIにターゲット設定されていますが、これはモバイルユーザーのために1人のAPIユーザー(アプリケーション)のみで使用できます。 APIMを使用すると、要求がIPアドレスに基づいて調整されるなど、バックエンドに到達する前に要求をフィルタリングおよび変換することができます。
  • また、これをアプリケーション自体に組み込むこともできます。 this oneなど、さまざまな図書館があります。

どちらの方法も強い選択肢がある場合は、コメントにあなたの考えを聞くことに興味があります。

関連する問題