django-axesとは

2024年6月23日

django-axesは、Djangoアプリケーションでの不正なアクセス試行やブルートフォース攻撃から保護するためのアプリケーションです。このアプリケーションを使用すると、ユーザーのアクセスパターンをモニタリングし、異常な活動を検出して対処できます。

主な機能としては以下が挙げられます:

  1. ログイン試行の監視: 多数のログイン試行が行われた場合、そのアクセスを制限することができます。
  2. IPアドレスのブラックリスト/ホワイトリスト設定: 特定のIPアドレスをブラックリストに追加してアクセスを拒否したり、ホワイトリストに追加して制限を緩和したりできます。
  3. ログイン試行のブロック: 多数のログイン試行が行われた場合、一時的にアカウントをロックアウトすることができます。
  4. メール通知: 不正なアクセスが検出された場合、管理者に通知を送ることができます。

django-axesのインストールと使用は比較的簡単です。まず、pipを使用してパッケージをインストールします。

bash
pip install django-axes

次に、INSTALLED_APPSMIDDLEWAREに必要な設定を追加し、データベースにモデルをマイグレーションします。

python
# settings.py

INSTALLED_APPS = [
    # ...
    'axes',
    # ...
]

MIDDLEWARE = [
    # ...
    'axes.middleware.AxesMiddleware',
    # ...
]

そして、データベースにマイグレーションを適用します。

bash
python manage.py migrate

これでdjango-axesが有効になり、デフォルトでは異常なログイン試行の監視が開始されます。必要に応じて設定を調整し、ドキュメントを参照してください。

python
# settings.py

AXES_LOCK_OUT_AT_FAILURE = True  # 失敗回数が一定以上の場合にアカウントをロックアウトする
AXES_USE_USER_AGENT = True  # User-Agentヘッダーを使用してログイン試行を区別する
# 他の設定...

参考: django-axes GitHub リポジトリ

未分類

Posted by ぼっち