このプラグインは、フォームログインの失敗を検知して一定期間内に同一IPから複数回のログイン失敗が発生した場合、以降のログイン処理をブロックします。
- CakePHP >= 5.0
- CakePHP Authentication plugin
composer を使用してインストールできます。
以下のようにして、Composer経由でプラグインをCakePHPアプリケーションへ追加します:
composer require nojimage/cakephp-login-attempts:^3.0
アプリケーションの src/Application.php
に、次の行を追加してプラグインをロードします:
$this->addPlugin('LoginAttempts');
マイグレーションを実行し、データベースへ必要なテーブルを作成します:
bin/cake migrations migrate -p LoginAttempts
Form
認証機能の代わりに LoginAttempts.Form
を使用してください。
Authentication プラグインを使う場合:
$service->loadAuthenticator('LoginAttempts.Form', [
'fields' => ['username' => 'email'],
'attemptLimit' => 5,
'attemptDuration' => '+5 minutes',
]);
attemptDuration
の間にログイン失敗回数が attemptLimit
を超えた場合、ログインを許可しません。
default: 5
attemptDuration
の間にログイン失敗回数が attemptLimit
を超えた場合、ログインを許可しません。
default: '+5 minutes'
試行回数はこのキー別に保存されます。ログインフォームが複数あり、それぞれ別個に制限を設けたい場合に使用します。
default: 'login'
ログインの失敗回数を記録およびチェックするためのモデルを指定します。
default: 'LoginAttempts.Attempts'