スパム撲滅

reCAPTCHA v3の実装方法

Laravel Breeze × Google reCAPTCHA v3 で不正登録を完全シャットアウト!

Laravelで会員登録機能を提供していると、避けて通れないのが「スパム登録」の問題です。私の環境でも、1日20件ほどの不正登録に悩まされていました。

ですが、Google reCAPTCHA v3 を Laravel Breeze の新規登録フォームに組み込んだ結果…不正登録はゼロに!完全にシャットアウトできました。

ログにもシャットアウトの報告がどんどんやってきます。

すげー効果です。

reCAPTCHAログ

✅ 実装はとても簡単

1️⃣ GoogleでreCAPTCHA v3キーを取得

https://www.google.com/recaptcha/admin/

GoogleのreCAPTCHAの管理サイトからサイトキーとシークレットキーを取得

(Googleへのログインが必要です)

2️⃣ 環境変数に追加

.env
RECAPTCHA_SITE_KEY=your_site_key
RECAPTCHA_SECRET_KEY=your_secret_key

3️⃣ Bladeにスクリプト追加

blade
<!-- resources/views/auth/register.blade.php -->
<script src="https://www.google.com/recaptcha/api.js?render={{ env('RECAPTCHA_SITE_KEY') }}"></script>
<script>
grecaptcha.ready(function() {
    grecaptcha.execute('{{ env('RECAPTCHA_SITE_KEY') }}', {action: 'register'}).then(function(token) {
        document.getElementById('recaptcha_token').value = token;
    });
});
</script>

<input type="hidden" name="recaptcha_token" id="recaptcha_token">

4️⃣ コントローラ側で検証処理追加

php
use Illuminate\Support\Facades\Http;

public function store(Request $request)
{
    $response = Http::asForm()->post('https://www.google.com/recaptcha/api/siteverify', [
        'secret'   => env('RECAPTCHA_SECRET_KEY'),
        'response' => $request->input('recaptcha_token'),
    ]);

    $result = $response->json();

    if (!($result['success'] ?? false) || ($result['score'] ?? 0) < 0.5) {
        \Log::warning('reCAPTCHA failed', [
            'ip'       => $request->ip(),
            'email'    => $request->input('email'),
            'score'    => $result['score'] ?? null,
            'action'   => $result['action'] ?? null,
            'hostname' => $result['hostname'] ?? null,
        ]);
        return back()->withErrors(['recaptcha' => '不正なアクセスが検出されました。']);
    }

    // 通常のユーザー登録処理
}

📊 効果は抜群!

導入前は毎日20件ほどのスパムが登録されていたのに、 導入初日からゼロ件に!

reCAPTCHAスコアの判定とログ出力をしておくと、攻撃の状況がしっかり確認でき、 必要に応じてスコア閾値も調整できます。

🎯 まとめ

  • 導入は たった数ステップ

  • スパム登録 完全ブロック

  • 開発者にとって 手軽に導入できる最強の対策

Laravel Breezeで新規登録フォームを使っているなら、 reCAPTCHA v3の導入は必須レベル です。

まおち
投稿者:まおち 投稿日:2025年7月16日
ITで飯を食っている。
日々何らかのエラーと戦っている。
しかし、レベルアップが遅い。
レベルアップが遅いのは勇者の特徴だと勘違いしている節がある。

投稿者一覧

# 関連記事