フォームスパム対策の実務ガイド(reCAPTCHA・ハニーポット・IP制御)

問い合わせフォームや資料請求フォームを公開すると、ほぼ必ずついて回るのがスパム投稿の問題です。 海外からの大量投稿、機械的な広告文、同じメッセージの連投など、放置すると担当者の確認コストが膨らみます。

一方で、スパム対策を強くしすぎると、今度は正規のユーザーが送信しづらくなり、機会損失につながります。 このページでは、実務で使いやすいフォームスパム対策を、「フロント側」「サーバー側」「運用」の 3 層に分けて整理します。

この記事の前提
・BtoB サイト・多店舗サイト・医療機関・学校等の問い合わせ/予約フォームを想定
・HTML フォーム+サーバーサイド(PHP 等)で実装しているケースを前提
・できる限りユーザー負担を増やさずにスパム投稿を減らす

1. スパム投稿のパターンを把握する

対策を考える前に、自社フォームにどのタイプのスパムが多いかを把握しておくと、無駄な対策を減らせます。

多くのサイトでは、最初の 2 つを主に対策し、3 つ目は「ある程度は割り切る」という設計になります。

2. フロント側の対策:ハニーポットと簡易チェック

2-1. ハニーポット(隠しフィールド)

代表的な手法が、ユーザーには見えないダミー入力欄(ハニーポット)を用意しておき、 そこに値が入っている送信をスパムとしてはじく方法です。

実装が軽く、ユーザー体験を悪化させにくい割に、機械的なスパムには一定の効果があります。

2-2. JavaScript を利用した簡易チェック

完全な防御にはなりませんが、「極端に単純なボット」をふるい落とすフィルターとして機能します。

3. reCAPTCHA 等の認証サービスを使うときのポイント

Google reCAPTCHA などの認証サービスは、スパム対策としてよく利用されますが、 導入時には次のような点を考慮する必要があります。

近年は、ユーザーに操作を求めない「不可視型」やスコアベースのものも増えているため、 「どの程度スパムが多いか」「ユーザー層にどれだけ負担をかけられるか」 を踏まえて選定するのが現実的です。

4. サーバー側の対策:回数制限・IP制御・本文チェック

4-1. 投稿頻度・回数の制限

誤検知を避けるために、「完全にブロック」ではなく、「一定時間おいてから再度お試しください」といったメッセージで制御するのが無難です。

4-2. IP・国コードによるフィルタリング

グローバルに顧客を持つ企業では慎重さが必要ですが、国内向けサービスで海外からの利用がほとんどない場合は、 「日本以外からの投稿は別窓口に誘導する」といった設計も選択肢になります。

4-3. 本文パターンによるフィルタ

自動削除ではなく、「要確認」ステータスに振り分ける 仕組みにしておくと、誤検知リスクを抑えつつ運用できます。

5. 運用フローとしての「スパム対策」

技術的な対策だけでなく、運用フローを決めておくことで、担当者の負荷を下げられます。

たとえばインテンスでは、問い合わせ管理システム側に「スパム/迷惑」のフラグを設け、 数クリックで判定できる UI にしておくケースが多くあります。

6. 業種別のフォームスパム対策の考え方

フォームスパム対策は、業種やビジネスモデルによって「どこまで厳しくするか」が変わります。

たとえば、製造業向けシステム開発例物流向けシステム開発例 を見ると、 問い合わせフォームと社内管理画面の両方を設計する前提で、どのレイヤーでスパムを減らすかを考えている構成例が分かります。 自社の業態に近いパターンを参考にしながら、「ユーザー体験」と「防御力」のバランスを設計していくとよいでしょう。

本記事は、Webシステム開発・スマホ自動変換「movo」・業務システム構築・フォームUX改善・EC支援を提供する 株式会社インテンスが、実際の開発プロジェクトで蓄積した知見をもとにまとめています。 株式会社インテンス(公式サイト)