サービスの新規登録にやたらとbotと思われる登録がくるようになって、メールのバウンス率(未着率)が上がってきたので簡単なbot除けを入れてみました。
基本的にスパムbotは、「フォームに全て入力する習性」がありますので、それを利用して人間は見えないフォームを設置し、そこに入力があった場合は、送信しない処理を入れてあげればOK。
HTML部分は、こんな感じ↓
<input style="display:none" name="is_bot" type="text" value="">
で、処理部分は例えばPHPだったらこんな感じ↓
// bot判定:`is_bot`が空でない場合はbot判定し登録せずにHOMEに遷移
if(isset($_POST["is_bot"]) && $_POST["is_bot"]){
// なんか処理があればここに書く(念のためデータベースに登録しておくとか)
header('Location: /');
exit();
}
余談ですが、万が一を想定してbotと判定された登録情報は別のテーブルに保存するようにしてたら、「全部botじゃねぇか!!」となりました↓