これ、わたしもぶっちゃけ「なんでだよ~!」ってなるやつなんだけど、reCAPTCHA v2をつけたのにスパムが止まらない問題、意外とよくあるんだよね💭
普通ならこれでかなりブロックできるはずなのに、なんでかまだ大量にボットが来ちゃうっていう…。うーん、なかなか手ごわい💦
そもそもreCAPTCHAってどう動いてるの?🧐
reCAPTCHA v2はよく見る「私はロボットじゃありません」ってやつ。クリックしたり、画像選んだりするやつね。
でも実は、ボットも最近はかなり賢くなってて、こういう単純なチェックは突破できちゃうことがあるんだって🥺
だから、reCAPTCHAだけに頼るのはちょっと危ないかもって感じだよね。
Laravelでできる、もう一歩踏み込んだ対策✨
わたしもちょっと調べたり試したりしてみたけど、こんな方法があるよ!
-
reCAPTCHA v3にアップグレードする
→ ユーザーの行動を点数化してスコアで判定するタイプ。ボットか人かをより自然に見分けてくれる感じ📊 -
フォームに隠しフィールド(honeypot)を入れる
→ 普通のユーザーは見えないけどボットは埋めちゃう罠みたいなもの。引っかかればスパムとして弾ける🐝 -
送信数の制限(レートリミット)
→ 一定時間に同じIPやユーザーからの送信を制限。何回も連続で送ってきたらブロックしちゃう方法⏳ -
IPブラックリストやファイアウォールの活用
→ 悪質なIPをあらかじめブロック。Laravelならミドルウェアで設定できるよ🔧 -
JavaScriptチャレンジの導入
→ ボットはJSを実行できないことが多いから、JSを使った簡単な認証を入れると有効⚡
わたしの感想:1つじゃ足りないかも?🤔
正直、「reCAPTCHAだけで完璧に防ぐ」はちょっと難しい気がしてる💭
組み合わせて、段階的にボットを減らす感じが現実的なんじゃないかなあ😳
特にLaravelならカスタマイズもしやすいし、レートリミットやhoneypotは簡単に導入できておすすめだよ👍
まとめると、reCAPTCHAは「最低限の防御レベル」ってイメージで、それだけに頼らず複数の対策を組み合わせるのがポイントかなぁって思うの。
ボットも日々進化してるから、こっちも少しずつ工夫を重ねていくしかないんだよね🥺✨
コメント
クリス
ほとんどの場合、ハニーポットだけでうまくいくけど、ダメならCloudflare Turnstileが頼りになるよ。
キンバリー
IPごとにレート制限とクライアントの一回限りのトークン(cnonce)を入れて、ボットの直POSTを防ごう。 詳しくはブログもあるよ。
ハンナ
ハニーポット使ってる? それかv2キャプチャの実装がちゃんとしてるか確認してみて。
ロバート
うちはハニーポットだけでキャプチャ無しでほとんどスパム来ないよ。
ベン
v3が最新じゃないの?
クリス
Cloudflare Turnstileをちゃんとトークン検証付きで使って、シンプルなハニーポットも入れてみて。 IPでレート制限もおすすめ。
ロバート
自分もCSSで隠したハニーポット使ってるけど、1日1万アクセスのサイトでもスパムゼロだよ。
ハンナ
ハニーポット入れてるなら設定ミスかもね。
チャーリー
botpoisonも試してみて、すごく効くよ!
ベン
まだ誰も言ってないけど、ハニーポットは考えた?
サラ
ハニーポットの入力欄ある?
リリー
Upstashって無料のミドルウェアあるし、連絡フォームやめてメールアドレス載せるのも手だよ。
レオ
一番シンプルなのは隠しチェックボックス作って、チェックされたら黙って破棄する方法。
クリス
Cloudflare Turnstileにハニーポットの組み合わせ最高!