コンテンツへスキップ

Djangoでたった5行でログイン試行制限!

django-allauthで手軽にセキュリティ強化

Djangoでログイン機能を実装するとき、不正アクセス対策は必須です。そんなときに便利なのが「django-allauth」。たった数行のコードで、簡単にログイン試行回数の制限をかけられる超便利モジュールです。

django-allauthのスゴさ

  1. SNSログインも一発導入 GoogleやFacebookのログインを手軽に組み込める!
  2. カスタマイズ自由自在 認証フローやUIを好きなように変更OK!
  3. セキュリティ強化が簡単 デフォルトで多くのセキュリティ機能が搭載!

django-allauthの導入方法

まずは、django-allauthをインストールしましょう。

pip install django-allauth

次に、settings.py に以下を追加します。

INSTALLED_APPS = [
    ...
    'django.contrib.sites',
    'allauth',
    'allauth.account',
    'allauth.socialaccount',
    ...
]

SITE_ID = 1
AUTHENTICATION_BACKENDS = [
    'django.contrib.auth.backends.ModelBackend',
    'allauth.account.auth_backends.AuthenticationBackend',
]

そして、urls.py に認証用URLを追加。

from django.urls import path, include

urlpatterns = [
    path('accounts/', include('allauth.urls')),
]

たった5行でログイン試行制限を実装

ログイン失敗を5回までに制限し、5分間ロックをかける方法を紹介します。

# ログイン試行回数を5回までに制限
ACCOUNT_LOGIN_ATTEMPTS_LIMIT = 5
# ロック解除までの待機時間(秒)
ACCOUNT_LOGIN_ATTEMPTS_TIMEOUT = 300

この設定だけで、不正アクセスや総当たり攻撃を防ぐことができます!

まとめ

django-allauthは、認証機能を手軽に強化できる最強モジュール。ログイン試行制限のようなセキュリティ機能もサクッと実装できます。Djangoアプリのセキュリティを高めたいなら、今すぐ試してみてください!

参考:

https://www.cfxlog.com/django-allauth