登録フォームに設置する簡単なスパム除け施策

サービスの新規登録にやたらと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じゃねぇか!!」となりました↓