ホームページ >バックエンド開発 >Python チュートリアル >FastAPI でリクエスト レート制限を実装し、悪意のあるリクエストを防ぐ方法

FastAPI でリクエスト レート制限を実装し、悪意のあるリクエストを防ぐ方法

WBOY
WBOYオリジナル
2023-07-28 14:45:142382ブラウズ

FastAPI でリクエスト レート制限を実装し、悪意のあるリクエストを防ぐ方法

はじめに: Web 開発では、リクエストが頻繁、悪意のあるリクエスト、またはリクエストが多すぎる状況によく遭遇します。これらの状況はサーバーにとって有害で​​ある可能性があります。ストレスやセキュリティ上のリスクさえも生み出します。 FastAPI では、リクエスト レート制限を実装し、悪意のあるリクエストを防止することで、サーバーの安定性とセキュリティを向上させることができます。この記事では、FastAPI でリクエスト レート制限を実装し、悪意のあるリクエストを防ぐ方法と、対応するコード例を紹介します。

1. リクエスト レート制限
リクエスト レート制限とは、リクエストの多すぎによるサーバーのクラッシュや頻繁なリクエストによるパフォーマンスの低下を防ぐために、クライアントのリクエストを制限し、リクエストの頻度と数を制限することを指します。リクエストはお断りします。 FastAPI では、fastapi-limiter ライブラリを使用してリクエスト レート制限機能を実装できます。

  1. #依存ライブラリをインストールする

    pip install fastapi-limiter

  2. #FastAPI アプリケーションにリクエスト レート制限ミドルウェアを追加する
  3. from fastapi import FastAPI
    from fastapi_limiter import FastAPILimiter
    
    app = FastAPI()
    
    @app.on_event("startup")
    async def startup_event():
     # 设置请求速率限制,例如每分钟最多10个请求
     await FastAPILimiter.init()
    
    @app.on_event("shutdown")
    async def shutdown_event():
     # 关闭请求限速
     await FastAPILimiter.shutdown()
    
    @app.get("/api/users")
    async def get_users():
     return {"result": "success"}

    # #上記のコードにより、1 分あたり最大 10 件の
  4. /api/users
リクエストを制限できます。制限を超えるリクエストは拒否されます。

2. 悪意のあるリクエストの防止悪意のあるリクエストの防止とは、サーバーへの攻撃を防ぐために悪意のあるリクエストを特定して拒否することを指します。 FastAPI では、

rebound

ライブラリを使用して、悪意のあるリクエストを防ぐ機能を実装できます。
#依存ライブラリをインストールする

pip install rebound
  1. #FastAPI アプリケーションでの悪意のあるリクエストを防ぐためにデコレータを追加する

    from fastapi import FastAPI
    from rebound.decorators import client_rate_limit
    
    app = FastAPI()
    
    @app.get("/api/users")
    @client_rate_limit(max_requests=10, interval_seconds=60)
    async def get_users():
     return {"result": "success"}

  2. 上記のコードにより、各クライアントが 60 秒以内に最大 10 件の

    /api/users

    リクエストを送信できるように制限できます。制限を超えるリクエストは拒否されます。
概要:

FastAPI が提供するミドルウェアとサードパーティ ライブラリを使用することで、リクエスト レート制限を簡単に実装し、悪意のあるリクエストを防ぐことができます。実際の Web 開発では、リクエスト レート制限や悪意のあるリクエストを防止する方法を、特定のシナリオやニーズに応じて適切に使用して、サーバーの安定性とセキュリティを向上させる必要があります。 上記は、FastAPI でリクエスト レート制限を実装し、悪意のあるリクエストを防ぐ方法についての紹介です。

以上がFastAPI でリクエスト レート制限を実装し、悪意のあるリクエストを防ぐ方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。