LaravelにreCAPTCHA V.3を搭載する方法【ボット被害とおさらばしたい方へ】

Laravelセキュリティ

現在運営中のサイトにボットによるユーザー登録があまりに多かったため、reCAPTCHAを搭載しました。

いやもうほんと、ボット攻撃って面倒ですね。

備忘録もかねて、方法を記事にします。同じようにボット被害に悩んでいたら、参考にしてくださいね。

reCAPTCHA v.3を設置すると、下記のように右下にreCAPTCHAが表示されます。

【登録したフォーム】

LaravelにreCAPTCHA V.3を搭載する方法

① ライブラリインストール

今回は使用している人が多そうだったので、こちらのライブラリを使わせてもらいました。

② 設定ファイルパブリッシュ

デフォルトでは、上記ライブラリはreCAPTCHA v.2に対応なので、設定ファイルをパブリッシュして、v.3に変更します。

configの中に、recaptcha.phpファイルができます。こちらを開き、41行目あたりでバージョンをv2からv3にしておきます。

【recaptcha.php(41行目あたり)】

③ reCAPTCHA設定

.envファイルにテスト用のキーとシークレットキーを下記のように貼り付けます。

④ ビューファイル編集

reCAPTCHAを設定したいビューファイルを開きます。

ユーザー登録用フォームでは、resources/views/auth/register.blade.phpファイル等になります。

formタグにid=”userRegister”をいれておきます。(ルート設定は変更しないでOKです)

ヘッダに、下記を加えます。

こちら、スコアが0.6以上なら「成功」となり、通常どおりの処理が行われます。スコアが0.6より少ない場合には、「ユーザーは人間ではないのでは?」と判断され、

「セキュリティ確認に失敗しました。ページを再読み込みして、もう一度送信ボタンをクリックしてください。」

というメッセージが表示されます。

ほか、処理が実行できなかった場合には、

「セキュリティチェック中に問題が発生しました。ページを再読み込みしてください。」

と表示されます。

メッセージやスコアはお好みで変えてください。スコアは0から1で設定しますが、1に近づくほど判定が厳しくなります。

ちなみにGoogleのreCAPTCHAマニュアルには、スコアについて下記のように書かれています。

reCAPTCHA v3 はスコアを返します(1.0 は安全なインタラクションである可能性が非常に高く、0.0 は bot である可能性が非常に高いです)。

https://developers.google.com/recaptcha/docs/v3?hl=ja

⑤ テストする

テストをします。フォームにユーザーを登録します。

なお「絶対にエラーにしたい」という場合には、④で設定したスコアを1.0にしておきましょう。

⑥ 本番環境に移行

本番環境で実行するには、GoogleのreCAPTCHA登録用サイトで、あらかじめGoogleのreCAPTCHA設定をしておきます。

設定画面でキーとシークレットキーをコピーし、本番用の.envファイルに貼り付けます。

また、サイトのドメインもGoogleのreCAPTCHA登録用サイトに登録しておきます。

さいごに

スコアについてですが、今回は0.6にしましたが、0.5あたりに設定することも多いようです。

ちなみに今回なぜボット被害にあったかというと、数カ月前に、プレスリリース用サービスを使ってWebアプリを紹介したためだと推測されます。

こういったことをするとアクセスが増えるメリットがありますが、ボット被害も増加することが分かりました。

reCAPTCHA設置でボットによる登録がなくなればよいと思いますが、もし十分でなければ、また対策をしていきます。

気づいた点や追加対策などあれば、また追記しますね。

Laravelセキュリティ

【Laravelの教科書・プレゼント】

Junko
Laravelの使い方を覚えたい!と思ったら、ぜひ、役立ててほしいです。 基礎編は無料でプレゼント中です♪
ひつじプログラマ
会員制サイトをいちから作っていくよ。ボタンをクリックして詳細を見てね。
Laravelの教科書の詳細を見る

最新のLaravel10版テキストに加え、Laravel8版・Laravel9版もご用意しています♪

【無料プレゼント】

「LaravelでWebアプリをいちから作れるようになりたい!」

そんなLaravel初心者のあなたへ【Laravelの教科書】基礎編プレゼント中! 会員制フォーラムサイトを学習しながら作れます。

詳細はこちらをクリック

最新のLaravel10版テキストに加え、Laravel8版・Laravel9版もご用意しています♪

Laravelの本を書きました。


ひつじが目印♪
クリックするとamazonページへ。

Laravelの使い方を分かりやすく解説した書籍を出版しました。書店やAmazon等のオンラインショップにて販売中です。
Laravel10対応。Laravel11サポートガイドもご用意しています。詳しくは下記ボタンをクリック♪

書籍の詳細を見てみる

Laravelの本を書きました。


ひつじが目印♪
クリックするとamazonページへ。

Laravel10対応

Laravelの使い方を分かりやすく解説した書籍を出版しました。書店やAmazon等のオンラインショップにて販売中です。

書籍の詳細を見てみる

 

Laravelの教科書限定コミュニティ【Laravelの教科書ラボ】はじめました。
デプロイ講座付。StripeやChatGPT連携など過去10回分のセミナー動画視聴可能。

Laravel実践スキルをのばしたい方におすすめです。

ラボの案内を見てみる

Twitter始めました。
40代からプログラミング!
タイトルとURLをコピーしました