本記事は執筆時点(2021年09月03日)の情報をベースにしております。掲載している情報が最新ではない可能性がありますので何卒ご容赦ください。
メールフォームにはスパム対策が必要
サイトの大小にかかわらず問い合わせフォームが設置してあると必ずと言っていいほどスパムメールが送られてきます。日本の営業メールをはじめ海外の英文の怪しげなメールまでスパムメールの種類は様々。一日数件だとしても毎日届くと非常に迷惑です。
これらのスパムメールはボットというプログラムによって自動でフォームに入力され送信されてきます。スパムメールを抑えるためにはこうしたボットへの対策が必要になります。
コンタクトフォーム7のスパム対策には「Honeypot」がおすすめ
今回は、ワードプレスのプラグイン「コンタクトフォーム7」を使用して設置したメールフォームで行うスパム対策について説明します。個人的に最も効果的だと感じた方法が「Honeypot」というプラグインによる対策です。
ワードプレスのプラグイン「コンタクトフォーム7」について詳しくはこちら
ワードプレスでお問い合わせフォームをコンタクトフォーム7で作成する方法
ワードプレスで「Contact Form 7」を使用してお問い合わせなどのメールフォームを作成する方法を説明します。...【もっと読む】
「Honeypot for Contact Form 7」プラグイン
このプラグインの仕組みシンプルで、フォームに隠し入力フィールドを設置するというもの。入力フィールドを見つけて自動で入力するようにプログラミングされているボットの特性を逆手に取り、本来気づくはずのない欄に入力されていたらボットとみなし送信できなくするという仕組みです。
Honeypotの優れている点
他にもContact Form 7を対象にしたスパム対策はありますが、純粋なユーザーがフォームに入力する際の手間を増やしてしまったり、スパムとみなして送信されなかったりとフォーム本来の役割を妨げる恐れがありました。一方このHoneypotは隠しフィールドというシンプルな仕掛けをひとつ設置するだけで、通常のユーザーの妨げになることなくピンポイントでボットだけを除外することが可能です。
Honeypotの効果
スパム対策を一切行っていない状態で毎日5件ほどのスパムメールが届いていたサイトに導入してみたところ、導入当日からピタリとスパムメールが来なくなりました。
その後導入したまま継続していますが、スパムメールの9割を占めていた海外からのメールは一切来なくなりました。
実際の所、日本からの営業メール・セールスメールが週に1~2通ほど来ますが、これはボットではなく手動で送信されているのかと思われるので仕方ないと思っています。
得体のしれない海外からのメールを防げるだけで十分な効果を感じています。
これまでにreCAPTCHAなどを試してみましたが効果は感じられなかったので、今の所最も効果的なスパム対策となっています。
Honeypotの使い方
それでは、ここから「Honeypot for Contact Form 7」プラグインの使い方を説明していきます。
このプラグインに限らず、プラグインの導入はサイトに不具合をもたらす恐れがありますので自己責任でお願いします。
「Contact Form 7」プラグインはインストールして有効化されていて、サイトにフォームも設置してあるという前提で進めます。
ワードプレスのプラグインとは?【使い方解説】
ワードプレスの拡張機能であるプラグインをインストールして使用する手順から、削除などの管理の方法、そしてプラグインの種類について説明します。ワードプレスは初期状態では記事作成などの機能しか備わっていないので必要な機能だけをプラグインという形で好きなように追加して使用します。...【もっと読む】
ワードプレスの左側のメニューからプラグインの「新規追加」をクリックし、「Honeypot for Contact Form 7」で検索します。
「Honeypot for Contact Form 7」をインストールして有効化します。
ハニーポットの設定は特に変更しないでOK
Honeypotを有効化するとコンタクトフォーム7のメニューに「ハニーポット」という項目が追加されます。ハニーポットの設定を行うことができますが、デフォルトの状態でも使えますので、特にこの画面をいじる必要はありません。
Honeypotをフォームに設置する
Contact Form 7の編集画面を開き、フォームにHoneypotを設置します。honeypotを有効化していると、フォーム編集画面のフォームタグ生成ボタンに「ハニーポット」ボタンが追加されます。
フォーム内の任意の位置にHoneypotを設置します。フォームタグ生成ボタンをクリックするとHoneypotの設定画面がポップアップで開きます。
ここで変更が必要なのは「名前」です。デフォルトの「Honeypot」のままだとボットによってはトラップだと理解してくぐり抜けてくる恐れがあります。通常のフォームの項目にありそうな名前を付けましょう。ここではyour-age(年齢)にしました。
編集内容を保存したら、実際のフォームを確認してみます。
フォームには何の変化もないように見えます。デベロッパーツールでソースコードを見てみます。display:noneを指定して見えないフィールドが追加されています。
試しにデベロッパーツールでCSSを書き換えて隠しフォームを表示させ入力し、送信ボタンを押してみたところ、ちゃんとエラーメッセージが出て送信できなくなっていました。
ボットがひっかかりやすいようにする
ボットがどういったプログラムをされているかはわかりませんが、中にhoneypotのような対策をすり抜けるプログラムもあるかもしれません。設置場所や項目名などは自由に設定できますが、通常のフォームに溶け込ませることを意識しておくことをオススメします。
その他コンタクトフォーム7で行うスパム対策
Honeypot以外にもスパム対策の方法はいくつもあります。Honeypotで効果がない場合や複数組み合わせることでスパムメールを抑えることができるかもしれません。
入力確認チェックボックスを設置
コンタクトフォーム7に標準で搭載されている機能で、「承認確認」フォームタグ生成ボタンからフォームに追加できます。チェックボックスにチェックを入れないと送信できないというものですが、ボットは自動でチェックを入れてくるの防ぎきれません。「Honeypot」と併用すればボットを惑わす効果が期待できるかもしれません。
まとめ
以上がワードプレスのコンタクトフォーム7で設置したメールフォームに「Honeypot」というプラグインでスパム対策を行う方法です。サイトの環境によって効果は異なるとは思いますが、個人的にはシンプルな仕組みにもかかわらず効果が現れたのでとても気に入っているプラグインです。