問い合わせフォームのスパム対策・セキュリティ設計ガイド|reCAPTCHAだけに頼らない実装の考え方

問い合わせフォームは、見込み客や見学希望者からの連絡窓口であると同時に、ボットや悪意のあるスクリプトから狙われやすい入口でもあります。本記事では、業種を問わず使える「スパム投稿を減らしつつ、正規ユーザーの負担を増やしすぎない」ための設計・実装の考え方を整理します。

この記事の対象読者
・問い合わせフォーム経由のスパム投稿が増えており、運用負荷が高くなっている担当者
・reCAPTCHAを入れたものの、ユーザー体験の悪化が気になっているご担当者
・医療・学校・ホテル・物流など、フォームを複数運用しており共通の対策指針を持っておきたい方

スパム対策の基本スタンスを決める

最初に決めるべきなのは「どこまで厳しくするか」です。対策が厳しすぎると正規ユーザーが離脱し、緩すぎるとスパムメールの仕分けに時間を取られます。

この前提を決めたうえで、技術的な対策を組み合わせていきます。

UXを損ねにくいスパム対策

1. honeypot(ダミー項目)によるボット検知

画面上には見えない入力フィールドを1つ用意し、そこに値が入っていた場合はスパムとして扱う方法です。

2. 送信までの“経過時間”チェック

フォーム表示時刻と送信時刻の差を計測し、「数秒以内に送信されたものはボットの可能性が高い」と判断する方法です。

3. シンプルなテキスト認証

「画面に表示された1〜2桁の数字を入力してください」など、画像認証より軽いテキスト認証を採用するパターンもあります。高齢者が多い業種では、画像認証よりもこちらの方が現実的なこともあります。

reCAPTCHAとの付き合い方

1. どのフォームに入れるかを選別する

すべてのフォームに一律でreCAPTCHAを入れるのではなく、次のように優先度を付けます。

逆に、件数が少ないフォームや、そもそも公開範囲が限定されているフォームでは、UX優先でreCAPTCHAをオフにする選択肢もあります。

2. バージョンと表示方法の選択

Invisible reCAPTCHAなど、ユーザー操作をほとんど要求しないモードを利用することで、「スパム対策はしたいが操作負担を増やしたくない」という要求に応えることもできます。

メール送信処理まわりのセキュリティ

1. メールヘッダーインジェクションへの対策

問い合わせ内容をそのままヘッダーに使うと、改行文字を悪用した不正なヘッダー追加のリスクがあります。

2. 添付ファイル・URLの扱い

ログ・アラート運用で“異常値”を検知する

1. 短時間に同じIPから大量送信されていないか

次のような指標をログから見られるようにしておくと、不正アクセスの早期検知に役立ちます。

2. アラート条件を決めておく

業種別・よくある設計上の悩みとヒント

まとめ

問い合わせフォームのスパム対策は、「1つの強力な仕組みを入れれば終わり」というものではありません。UXを大きく損ねない対策(honeypot・時間制限など)をベースに、reCAPTCHAやメール送信時のセキュリティ、ログ運用を組み合わせることで、実務に耐えうるバランスを取ることができます。業種横断の指針を一度整理しておくと、新しいフォームを増やす際にも同じ方針を適用しやすくなります。

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