広告

【Laravel Breeze】ログインの失敗回数・ロック時間の変更

Laravel

当サイトではアフィリエイト広告を利用しています。

広告

はじめに

Laravelの認証機能のBreezeは、簡単に導入することができます。
Breezeはセキュリティ対策の一環として、ログインに連続で失敗した場合に、ログインを一定時間できなくなる仕組みが導入されています。

今回は、その回数やロック時間を変更する手順をまとめました。

Laravel Sailでの開発環境の構築方法は以下をご覧ください。

Windows
Laravel Sailで開発環境構築【Vite対応】
今回は、Laravel Sailを使って環境の構築を行いました。 SailはDockerですので、開発環境を簡単に用意することもできますし、カスタマイズすることも楽です。
Mac
【M1 Mac】Laravel Sailで開発環境構築【Vite対応】
Laravel Sailを使って環境の構築を行いました。 SailはDockerですので、開発環境を簡単に用意することもできますし、カスタマイズすることも楽です。

また、Laravelの認証機能の導入 (Breeze)は以下をご覧ください。

【Laravel8/9/10】認証機能の導入 (Breeze)
Laravel8の認証機能(ログイン機構)を導入したいと思います。 シンプルで最小限の認証機能である、Breezeを導入します。 Laravelの導入から詳しく解説しています。
使用するバージョン
  • Windows 11 or macOS Monterey (M1)
  • Laravel Framework 8 or 9 or 10

2022/10/02 WindowsとMacを使い、最新バージョンで確認しました。
2023/03/11 Laravel10で確認しました。

他にも私のブログで、Laravelについて解説している記事がありますのでご覧ください。

広告

【紹介】個人開発

私の個人開発ですがQuiphaというサービスを開発しました。(Laravel, Vue3など)
良かったら、会員登録して動作を試してみて下さい。

また、Laravel 9 実践入門という書籍を出版しました。
Kindle Unlimitedを契約している方であれば、読み放題で無料でご覧いただくことができます

是非多くの方に読んでいただき、Laravelの開発に少しでもお役に立てたら幸いです。

ログイン失敗回数の変更

ログイン画面にアクセスします。

Emailアドレスを入力し、パスワードを何度も間違えてログインを行います。
デフォルトで、5回ログインに失敗すると、1分間ロックがかかり、ログインができなくなります。

不正にアクセスする悪意のあるユーザは、ブルートフォースアタック(総当たり攻撃)を行う可能性があり、この対策は効果的です。

この回数を変更するには、以下のファイルを修正します。

app\Http\Requests\Auth\LoginRequest.php

tooManyAttemptsの第二引数の値を変更します。(デフォルトで5が指定されている)

    public function ensureIsNotRateLimited()
    {
        if (!RateLimiter::tooManyAttempts($this->throttleKey(), 5)) {
            return;
        }

例えば、この数値を3に変更すると、三回失敗した後にログインのロックがかかります。

ログインの回数制限は、ユーザーのメールアドレスとIPアドレスの組み合わせごとに制限されます。

広告

ログインロック時間の変更

ログインのロックがかかった後に、ロックされる時間については、デフォルトで1分です。

1分経つと、またログインを行うことができます。

この時間を変更するには、以下のファイルを修正します。

app\Http\Requests\Auth\LoginRequest.php

以下のコードを確認します。

    public function authenticate()
    {
        $this->ensureIsNotRateLimited();

        if (!Auth::attempt($this->only('email', 'password'), $this->boolean('remember'))) {
            RateLimiter::hit($this->throttleKey());

RateLimiter::hitの第二引数に、時間(秒)を指定します。
(10分を指定する例)

RateLimiter::hit($this->throttleKey(), 600);

ログインロックの時間が変更されました。

ログインロック時間を表示しない

ログインのロック時に、「残り何秒」という表示をしたくない場合は、以下のファイルを変更します。

Laravel8: resources\lang\en\auth.php
Laravel9/10: lang\en\auth.php

以下のコードを確認します。

'throttle' => 'Too many login attempts. Please try again in :seconds seconds.',

以下のように修正しました。

'throttle' => 'Too many login attempts.',

修正後、残り秒数が表示されなくなりました。

その他

初学者へ

Laravelを初めて触る方へ向け、手順やアドバイスをまとめました。

外部サーバーへ公開

作成したアプリは公開して使ってもらいましょう!
Laravelアプリケーションを外部公開する方法をまとめました。

脆弱性対策

脆弱性を抱えたアプリケーションの場合、攻撃を受ける可能性があり大変危険です。
作成したアプリケーションは、脆弱性対策も意識しましょう。

GitHubと連携

GitHubと連携する方法を解説しました。
プロジェクトの管理はGitHubを活用しましょう。

GitHub Copilot

GitHub Copilotを導入し、AIにコーディングをサポートしてもらうこともできます。

さいごに

LaravelのBreezeは、簡単に認証の仕組みを導入でき、カスタマイズも楽ですので、是非試してみてください。

他にも私のブログで、Laravelについて解説している記事がありますのでご覧ください。

LaravelMacOSPHPWindowsプログラミング
広告

個人開発

千草 @chigusaweb

現役のITエンジニア。 気ままにコードを書いたり技術情報を発信しています。 Webアプリ/Windows・Macアプリ/モバイルアプリなど。 (Java, PHP, Javascript, Swift, Python, C#, 他) 個人開発:Clibor, Quipha, TXT-Crypter, 符計算特訓, チグサツール Kindle本: Laravel9 実践入門, 他

クリップボード履歴

Clibor

Windows

Cliborはシンプルで高機能なクリップボード履歴ソフトです。
また普段よく使うワードを定型文として登録し、いつでもクリップボードに保存することができます。高度なテキスト整形・FIFOモード・ホットキーに対応。

クリップボード履歴

Windows版Cliborの利便性を、そのままMacでも。
定型文登録、高度なテキスト整形、FIFOモードなど、便利なクリップボード履歴機能を利用できます。macOS最新のTahoeにも対応。

テキスト暗号化

テキストを暗号化してURLで共有・保存できる無料サービスです。
パスフレーズを知る人だけが復号できます。登録不要、データはサーバーに保存されません。
Notionでも利用できます。

学習

Quipha

Web / iOS

自分だけの問題集や問題を作成し、クイズを行い、学習に活用することができるアプリです。
例えば、学校の授業、語学学習、IT資格やその他の資格など多彩な分野での学習を支援します。
いつでも、どこでも、あなたの学習をサポート。

ツール

日常の「ちょっとした効率化」をサポートするWeb便利ツール集。
テキスト・データ処理から最新のAI連携まで、日々のちょっとした手間でググりがちなユーティリティを1つの場所に集約。

麻雀

麻雀の符計算をひたすら特訓しマスターしましょう。
初心者の方はもちろん、もっと速く計算したい方にも役立ちます。
5万対局以上の実践から問題を収録。

コメント

タイトルとURLをコピーしました