WordPressでお問い合わせフォームを設置していると、ある日突然、英語や意味の分からない内容のお問い合わせが大量に届くことがあります。この迷惑なメールのことを「スパム」と呼ばれたりします。
数件程度なら削除すれば済むかもしれませんが、何十件、何百件と送信されると、本当に必要なお問い合わせが埋もれてしまいます。
また、影響を受けるのは自分だけではなく、大量の不正なメールを第三者に送信するために悪用される可能性もあります…。
今回は、お問い合わせフォームから迷惑なメールを送られないためのスパム対策として、Google reCAPTCHAを利用して対策する方法を紹介していきます。スパムに困っている方はぜひ参考にしてください!
お問い合わせフォームが悪用される問題点
改めて、お問い合わせフォームが悪用される問題点を確認しておきましょう。大量のメールが届いて自分も困るのですが、自動返信の仕組みを悪用すると自分以外にもメールを送れてしまうのが問題としては大きいです。
スパムが大量に届くと、本当のお問い合わせが埋もれる
分かりやすい問題が、管理者側に大量のメールが届くことです。
例えば、1日に100件のスパムが届くようになると、その中に本当のお客様からのお問い合わせが1件入っていても見落としてしまうかもしれません。
お問い合わせフォームは、Webサイトから仕事につながる大切な入り口でもあります。そのため、スパムによって本当に必要なお問い合わせが埋もれてしまう状態は避けたいところです。
自動返信メールを悪用される可能性もある
そして、もう一つ注意したいのが「自動返信メール」です。
お問い合わせフォームでは、「お問い合わせありがとうございます。以下の内容で受け付けました。」といったメールを、入力されたメールアドレスへ自動的に送信する設定にしていることがあります。
便利な機能ですが、フォームが自由に送信できる状態になっていると、この仕組みを悪用される可能性があります。
例えば、攻撃者がフォームのメールアドレス欄に第三者のメールアドレスを入力して、大量にフォームを送信したとします。すると、攻撃者→お問い合わせフォーム→第三者へ自動返信メールを送信→という流れができてしまいます。
自分は何もしていないのに、結果として自分のWebサイトから第三者へ大量のメールが送信される可能性があるということですね。
場合によっては、メールサーバーやドメインの評価にも影響し、正常なメールまで迷惑メールとして判定されやすくなる可能性があります。
お問い合わせフォームのスパム対策は、「自分に迷惑メールが届かないようにする」というだけではなく、自分のフォームを悪用されないようにするための対策でもあります。
フォームを人間だけが利用できるようにする
多くのスパムは機械的に送られているので、機械が送っているか、人間が送っているか、を判断できれば、防ぐことができるようになります。そういった判定を提供してくれているサービスがいくつかありますが、代表的なサービスの一つにGoogleの「reCAPTCHA」があります。
Contact Form 7やSnow Monkey FormsなどのWordPressプラグインと組み合わせて利用することも可能ですので、スパムを対策する手段として「reCAPTCHA」の導入方法を確認していきましょう!
Google reCAPTCHAを設定する
前提としてはGoogleアカウントが必要になります。その上で、Google Cloudにプロジェクトを作ってreCAPTCHAを導入していきます。
導入の流れを順番に確認していきましょう。
Google Cloudでプロジェクトを作成
まずは、Google Cloudでプロジェクトを作成しましょう。すでにプロジェクトを持っている方もWordPressの管理用のプロジェクトを作った方が管理しやすくなるかなと思います。
https://console.cloud.google.com/
左上のプロジェクト一覧から新しいプロジェクトで作成します。

reCAPTCHAの設定
プロジェクトが作成できたら、reCAPTCHAの設定をしていきましょう。左側のメニューから、セキュリティ→Fraud Defenseを選択します。

「鍵を作成」のボタンから鍵を作成します。

表示名、アプリケーションの種類、ドメインリストを設定しましょう。
※ 以下のキャプチャはダミーのドメイン名を入れていますが、スパム対策したいフォームが設置されているサイトのドメインを入れてください。

- 表示名:任意ですが一意の名前で分かりやすいドメイン名がおすすめ(例:haniwaman.com)
- アプリケーションの種類:ウェブ
- ドメインリスト:ドメイン名(例:haniwaman.com)
入力したら「Create key」で作成します。
reCAPTCHAのサイトキーとシークレットキーを確認
鍵が作成されるとキーの詳細ページに移動します。WordPressのお問い合わせフォームのプラグインと連携するためには、サイトキーとシークレットキーが必要になりますので場所を確認しておきましょう。
サイトキー
キーの詳細ページのIDとして表示されている値がサイトキーです。

シークレットキー
「システム開発」のタブが選択されていることを確認して、「サードパーティのサービスやプラグインと統合する」を選択します。

以前の秘密鍵として、シークレットキーが表示されます。

WordPressのお問い合わせフォームのプラグインと連携する
Google側でキーを作成できたら、WordPress管理画面へ戻ります。先ほど確認した「サイトキー」と「シークレットキー」を使って連携していきましょう。
Contact Form 7とreCAPTCHAを連携する場合
左のメニューの、お問い合わせ→インテグレーション→reCAPTCHAから、先ほど確認した「サイトキー」と「シークレットキー」を設定します。

設定後は、実際にお問い合わせフォームからテスト送信して、正常に送信できることも確認しておきましょう。あわせて、フォームのページの右下にreCAPTCHAのマークが表示されていれば、reCAPTCHAが動いています。
Snow Monkey FormsとreCAPTCHAを連携する場合
左のメニューの、Snow Monkey Forms→reCAPTCHAから、先ほど確認した「サイトキー」と「シークレットキー」を設定します。

設定後は、実際にお問い合わせフォームからテスト送信して、正常に送信できることも確認しておきましょう。あわせて、フォームのページの右下にreCAPTCHAのマークが表示されていれば、reCAPTCHAが動いています。
お問い合わせフォームも公開後の管理が大切
ユーザーが自由に入力できるお問い合わせフォームは攻撃されやすい場所です。設置当初はスパムが届いていなくても、ある日突然、大量のスパムが届くようになることがあります…。
スパム対策をしておくことで、
- 本当に必要なお問い合わせが埋もれるのを防ぐ
- 大量の不要なメールが届くのを減らす
- 自動返信メールの仕組みを悪用されるリスクを減らす
といったことにつながります。
また、対策を導入したあとも、実際にフォームが正常に送信できるか定期的に確認しておくことが大切です。
お問い合わせフォームは、お客様とWebサイトをつなぐ大切な入り口です。WordPress本体やプラグインの更新だけでなく、お問い合わせフォームについても「正常に動いているか」「悪用されていないか」という視点で管理していきましょう。


