問い合わせフォームスパム対策専門

自分でできるスパム対策

60日間返金保証。効果がなければ全額返金

フォームスパムは、その手法により大きく2つのカテゴリーに分けられます。

一つはボットによる自動的なスパムで、短時間に大量の迷惑メールやスパムメッセージを送りつけるものです。

もう一つは人間によるマニュアルスパムで、特定の目的や意図を持って手動で送信され、特にフォーム営業と呼ばれる営業メールの送付が多く見られます。

このページでは、初心者でも簡単に実装できるHTMLやJavaScriptのテクニックを使った具体的な対策について詳しく解説していきます。

なかなかスパムが減らないとき、自社での対応が難しい場合は一度お問い合せください。

当社の経験豊富なエンジニアが、お困りの状況に合わせたカスタマイズ対策を提供。スパムゼロを目指します。

ボットによる自動スパム対策

メールアドレス保護

Webページ上に公開されたメールアドレスは、スクレイピングツールやメールアドレス自動収集ロボットによって簡単に収集されるリスクがあります。

一度収集されたアドレスは、ボットによる迷惑メールやスパムの送信先リストに追加されることが一般的です。

メールアドレスを保護することでロボットによる収集を防止し、スパムの対象となるリスクを最小限に抑えます。

対策方法

当サイトではメールアドレスを一切掲載しないことを推奨しています。

どのような対策を行なっても、何らかの形でメールアドレスが掲載されている限りロボットに収集されるリスクを無くせないからです。

どうしてもメールアドレスを掲載する必要がある場合は次のような対策を講じてください。

 

1. HTMLエンコーディング

メールアドレスをHTMLエンティティに変換して表示します。

これによりボットはメールアドレスを容易に収集することができなくなりますが、ブラウザ上では通常のメールアドレスとして表示されます。

 

2. JavaScriptの利用

JavaScriptを使用してページがロードされる際にメールアドレスを動的に生成・表示します。

JavaScriptを実行できないボットは、この方法で表示されたメールアドレスを収集することができません。

※ 上記2つの対策については https://www.luft.co.jp/cgi/coding.php で簡単に対策コードを生成できるサービスが提供されています。

 

3. 画像としての表示

メールアドレスを画像として表示することで、ボットによる収集を避けます。

閲覧者がメールアドレスをコピー&ペーストできなくるので、あまり長いメールアドレスに対してはお勧めできません。

ボット検出用ハニーポットの設置

ボットは問い合わせフォームページのソースコード上にある全てのフィールドを機械的に入力しようとします。

非表示のフィールドを設置しそれをボットに入力させ、このフィールドが入力されていればそれがボットからのものであると判定します。

この手法をハニーポットと呼びます。

対策方法

step.1 非表示の入力フィールドの設置

問い合わせフォーム内にブラウザ上では表示されないフィールド (ハニーポットフィールド) を設置します。

				
					<input type="text" name="honeypot" id="honeypot" style="display:none;">

				
			

下記のようにcssファイルで非表示に設定することも可能です。

				
					#honeypot {
    display: none;
}
				
			

step.2 フィールドの確認

フォームが送信された際、ハニーポットフィールドに何らかのデータが入力されていればそれはボットによる送信と判断し、メール送信処理を中止します。

CAPTCHAの利用

CAPTCHAは、閲覧者が人間であることを確認するために設計されたテストです。

このテストは、ボットには簡単に解決できないが、人間には容易に解決可能なテスト (チャレンジ) を提供することを目的としています。

CAPTCHAの導入により、ボットや自動化ツールによる不正なフォーム送信を効果的にブロックできます。

対策方法

CAPCHAの導入にはサーバ・クライアントの両サイドでの少し複雑な対応が必要となり、ここで解説している他の対策より実装の難易度が上がります。

当サイトでお勧めしているのは、無料で利用できるGoogle reCAPTCHA と、Wordpressでやはり最も普及しているContact Form7と呼ばれるフォーム生成プラグインの組み合わせによる導入です。

この方法であればコーディングを一切せずに問い合わせフォームにCAPTCHAを導入できます。

導入方法はContact Form7の公式解説ページを参考ください。

CSRF対策の実装

スパマーはPOST先 (問い合わせフォームデータの送信先) のURLを知っていればそこに直接POSTリクエストを送ることで、入力フォームを経由しなくてもスパムメールを送信することができます。

CSRFと呼ばれる攻撃に対して使われるのと同じ対策で、このように直接POSTリクエスト送るタイプのスパムの対策を行うことができます。

対策方法

step.1 CSRFトークンの生成

セッション毎にサーバーサイドでランダムな文字列(CSRFトークン)を生成し、セッションに保存します。

step.2 問い合わせフォームにCSRFトークンを埋め込む

hiddenフィールドとしてCSRFトークンを埋め込みます。

				
					<input type="hidden" name="csrf_token" value="CSRFトークン">
				
			

step.3 CSRFトークンの照合

フォームが送信された際、送信されてきたトークンとサーバーサイドでセッションに保持しているトークンが一致するかを検証します。

一致しない場合、不正なリクエストとしてメール送信処理を中止します。

マニュアルスパム (人間による手動スパム) 対策

実は当社が一番困っていたのはこのマニュアルスパムです。

その内容はサイトの内容とは全く関係のないフォーム営業と呼ばれる営業スパムメールです。

人間が手動で送信しているのでボットによる迷惑メールやスパムと比べ件数は少ないものの、本来お客さまのために設置している問い合わせフォームから頻繁に営業メールを送られるのは非常に不愉快でした。

マニュアルスパム対策の難しさは、実際に人間が入力・送信操作を行っているため本当の問い合わせと区別がつかないところです。

しかし多くのフォーム営業スパムの挙動を見ながら分かったことがあります。

それは「すべての手順を手動で行なっているわけではない」ということです。

この点に注目し、人間が送信するフォーム営業にもある程度効果のある対策を構築することができました。

マニュアルスパム対策の方法を誤ると本来のお客さまからの問い合わせもブロックしてしまう可能性があるため、ボットスパム対策のように画一的な対策ができません。

個別に状況を確認し適切な対策を提案させていただきますので、フォーム営業にお困りの場合はぜひ一度お問い合わせください。