4
0

More than 3 years have passed since last update.

Laravelでスパム対策したのでメモ

Last updated at Posted at 2019-12-25

仕組み

スパムボットはフォーム内のすべての項目に自動的に入力していくことが多いので
表から見えない「非表示の項目」をつくり、そこに入力されている場合はスパムと判断し404にとばす処理をする。

ビュー

非表示の項目を作成


{{Form::text('honeypot','',['style'=>'display:none'])}}

コントローラー

リクエスト「honeypot」の中に値が入ってたら代入。


if(isset($request->honeypot)) {
    $contacts->honeypot = $request->honeypot;
}

ログ残すなら

Log::info($contacts);//個人情報含む場合、暗号化が必要

暗号化して複合する記事書いてるのでよかったら

検知したら404にとばす

if(isset($contacts->honeypot)){
    abort(404);
}

最後に

今回は簡単な除外対策でしたが、
もう少し凝ると、$_SERVER[‘REMOTE_ADDR’]でリクエストIP取得して、特定のアクセスは拒否する。とか
更に凝ると、画像認証(CAPTCHA認証)の実装とか
色々な対策あって勉強になった。

4
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0