問い合わせフォームのスパム対策・セキュリティ設計ガイド|reCAPTCHAだけに頼らない実装の考え方
問い合わせフォームは、見込み客や見学希望者からの連絡窓口であると同時に、ボットや悪意のあるスクリプトから狙われやすい入口でもあります。本記事では、業種を問わず使える「スパム投稿を減らしつつ、正規ユーザーの負担を増やしすぎない」ための設計・実装の考え方を整理します。
この記事の対象読者
・問い合わせフォーム経由のスパム投稿が増えており、運用負荷が高くなっている担当者
・reCAPTCHAを入れたものの、ユーザー体験の悪化が気になっているご担当者
・医療・学校・ホテル・物流など、フォームを複数運用しており共通の対策指針を持っておきたい方
スパム対策の基本スタンスを決める
最初に決めるべきなのは「どこまで厳しくするか」です。対策が厳しすぎると正規ユーザーが離脱し、緩すぎるとスパムメールの仕分けに時間を取られます。
- 1日数件のスパムなら「運用で吸収する」方がよい場合もある
- 自動返信メールを止める/分岐させるだけで負荷が下がるケースもある
- 業種柄、高齢者が多い場合は「難しい画像認証」は最小限に抑える
この前提を決めたうえで、技術的な対策を組み合わせていきます。
UXを損ねにくいスパム対策
1. honeypot(ダミー項目)によるボット検知
画面上には見えない入力フィールドを1つ用意し、そこに値が入っていた場合はスパムとして扱う方法です。
- 人間は入力しない(そもそも見えない)項目のため、負担ゼロ
- 古典的なボットは全項目に入力してくるため、一定割合を弾ける
- ログに残しておくと、どの程度のスパムが来ているかの把握にも使える
2. 送信までの“経過時間”チェック
フォーム表示時刻と送信時刻の差を計測し、「数秒以内に送信されたものはボットの可能性が高い」と判断する方法です。
- 人間が10〜20項目入力するのに数秒では終わらない前提を利用
- あまりに短い場合はエラーにせず、裏側でスコアを下げる運用も可能
3. シンプルなテキスト認証
「画面に表示された1〜2桁の数字を入力してください」など、画像認証より軽いテキスト認証を採用するパターンもあります。高齢者が多い業種では、画像認証よりもこちらの方が現実的なこともあります。
reCAPTCHAとの付き合い方
1. どのフォームに入れるかを選別する
すべてのフォームに一律でreCAPTCHAを入れるのではなく、次のように優先度を付けます。
- スパムが集中しているフォーム(汎用お問い合わせなど)
- 自動返信メールが大量に送られると問題になるフォーム
- 一度のスパムで大量のメールが飛ぶ危険があるフォーム
逆に、件数が少ないフォームや、そもそも公開範囲が限定されているフォームでは、UX優先でreCAPTCHAをオフにする選択肢もあります。
2. バージョンと表示方法の選択
Invisible reCAPTCHAなど、ユーザー操作をほとんど要求しないモードを利用することで、「スパム対策はしたいが操作負担を増やしたくない」という要求に応えることもできます。
メール送信処理まわりのセキュリティ
1. メールヘッダーインジェクションへの対策
問い合わせ内容をそのままヘッダーに使うと、改行文字を悪用した不正なヘッダー追加のリスクがあります。
- 件名・差出人名にユーザー入力値を入れる場合は改行文字を除去
- 送信先メールアドレスはサーバー側で固定し、入力値を使わない
2. 添付ファイル・URLの扱い
- 添付ファイルを許可する場合は、拡張子・サイズ・保管期間を制限
- 本文内URLは、クリック前に担当者が内容を確認する運用ルールを決めておく
ログ・アラート運用で“異常値”を検知する
1. 短時間に同じIPから大量送信されていないか
次のような指標をログから見られるようにしておくと、不正アクセスの早期検知に役立ちます。
- IPアドレスごとの送信回数
- User-Agentごとの傾向
- 深夜帯の送信パターン
2. アラート条件を決めておく
- 1時間にX件以上送信されたら、担当者にメール通知
- 特定IPからの投稿が一定回数を超えたら自動ブロック
業種別・よくある設計上の悩みとヒント
- 医療:個人情報保護の観点から「聞きすぎない」こととスパム対策のバランス
- 学校:高校生・保護者がスマホで入力する前提で、画像認証を避けたい場合の代替策
- ホテル:海外からの問い合わせも多く、IP制限だけでは対応しきれないケース
- 物流:法人から短時間に複数問い合わせが来るため、「件数だけではスパムと判断できない」ケース
まとめ
問い合わせフォームのスパム対策は、「1つの強力な仕組みを入れれば終わり」というものではありません。UXを大きく損ねない対策(honeypot・時間制限など)をベースに、reCAPTCHAやメール送信時のセキュリティ、ログ運用を組み合わせることで、実務に耐えうるバランスを取ることができます。業種横断の指針を一度整理しておくと、新しいフォームを増やす際にも同じ方針を適用しやすくなります。
本記事は、Webシステム開発・スマホ自動変換「movo」・業務システム構築・フォームUX改善・EC支援を提供する
株式会社インテンスが、実際の開発プロジェクトで蓄積した知見をもとにまとめています。
株式会社インテンス(公式サイト)