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ファイルにテスト用のキーとシークレットキーを下記のように貼り付けます。

こちらは、Google側で用意してくれているテスト用のキーです。詳細は下記ページご覧ください。

④ ビューファイル編集

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.6では、人間による登録がはじかれてしまうこともあります。

実際に試したところ、スコアを0.6にした場合、Chromeでは大丈夫なのに、Edgeでははじかれることがありました。ブラウザによっても動作が異なるようなので、注意が必要です。

「間違えてはじいてしまいたくない」という場合は0.3ぐらいが良さそうです。ただ、そうなると、セキュリティはゆるくなっちゃいます。実際にテストしてみて、あなたのサイトにあったスコアを設定してくださいね。

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

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

なおセキュリティについては下記も参考にしてください。色々な対策をまとめてみました!

Laravelセキュリティ

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

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

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

【無料プレゼント】

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

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

詳細はこちらをクリック

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

【AWS関連・Webアプリ開発・生成AIのAPI活用のご相談承ってます】
お気軽にお声がけください。
御社にとって、最善の方法をご一緒に考えてまいります。
Zoomミーティング実施中。サンプルアプリご利用可能です。

お問合せフォーム

Laravelの本を書きました。


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

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

書籍の詳細を見てみる

Laravelの本を書きました。


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

最新版Laravel11用のサポートガイドご用意しています。

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

書籍の詳細を見てみる
Twitter始めました。
40代からプログラミング!
タイトルとURLをコピーしました