新卒未経験エンジニア成長日記

どこまでいけるか、挑戦です!

ログインの試行回数に上限を設定したい!

  • 概要 何度もパスワード間違えんじゃねえ! 攻撃対策にも

  • 手順
    以下の設定だけ

    • app\Providers\FortifyServiceProvider.php
       public function boot()
    {
        Fortify::createUsersUsing(CreateNewUser::class);
        Fortify::updateUserProfileInformationUsing(UpdateUserProfileInformation::class);
        Fortify::updateUserPasswordsUsing(UpdateUserPassword::class);
        Fortify::resetUserPasswordsUsing(ResetUserPassword::class);
       // ↓変更する箇所
        RateLimiter::for('login', function (Request $request) {
            return Limit::perMinutes(1,1)->by($request->email.$request->ip());
        });
  //↑ここまで
        RateLimiter::for('two-factor', function (Request $request) {
            return Limit::perMinute(5)->by($request->session()->get('login.id'));
        });
    }

※ RateLimiter::for('制限するレート名', function (Request $request) {
※ Limit::perMinutes(ロックする時間, 許容する試行回数)
byでメソッドチェインをすると特定のIPからのアクセスを制限する、などの処理を追加できる
※ エラーページはresources\views\errors\429.blade.phpを編集

それか、confgig の loginのに試行回数を設定する

  • 参考

https://readouble.com/laravel/8.x/ja/routing.html#:~:text=%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82-,%E3%83%AC%E3%83%BC%E3%83%88%E5%88%B6%E9%99%90,-%E3%83%AC%E3%83%BC%E3%83%88%E5%88%B6%E9%99%90%E3%81%AE