問い合わせフォームのスパム対策をしよう【ContactForm7にreCAPTCHA導入】

2019/11/29

サービスを提供している企業などは特に、サイトにお客様からの問い合わせを受け付ける問い合わせフォームを設置していることが多いと思います。

しかしスパム対策をしていないと、スパムメールが届くようになり大切なお問い合わせメールを見逃してしまったりする要因にもなるので早々に対策しておきたいところです。
この記事ではスパム対策としてGoogleのreCAPTCHAというサービスの紹介とWordPressの問い合わせフォームプラグイン「ContactForm7」にreCAPTCHAを導入する方法について解説していこうと思います。

問い合わせフォームからどうやってスパムメールが送られてくるのか?

1日に何件も何件も届く事もあるスパムメールは、「迷惑メール」とも言われている通り本当に迷惑ですよね。

このようなスパムメールは何らかの方法でメールアドレスを入手して無差別に送り付けたり、サイトの問い合わせフォームからメールを送りつけてきたりするわけです。
そして問い合わせフォームから送信されるスパムメールは、人間が色々なサイトを巡って送信している事はめずらしく、ロボットを使って自動的にかつ無差別に送られている場合がほとんどなのです。

スパム対策CAPTCHA認証とは?

前述したように、問い合わせフォームから届くスパムメールは人間が送っているのではなくロボットで送っている場合がほとんどと説明いたしました。

では、問い合せフォームのスパム対策としては「送ってきたのがロボットではないか?」という事がわかれば良いわけですよね。
どうやって判断するの!?と疑問に思われる方も多いと思いますが、そこでCAPTCHA認証の出番です!

皆さまは、どこかのサイトで問い合わせフォームから何らかの問い合わせを送信する前に、読みにくいアルファベットの画像が表示されてその文字を入力しないと送信できないようになっていたり「私はロボットではありません」というチェックボックスが設置されたフォームに遭遇した経験はないでしょうか?

まさにあれがCAPTCHA認証です!

そしてこの後に導入方法を紹介する「reCAPTCHA」とはGoogleが提供している、問い合わせフォームからのスパム送信を防止するためのサービスの名称になります。

reCAPTCHAのバージョンの違い

現在(2019年11月)、reCAPTCHAはバージョン3までリリースされていますがそれぞれのバージョンで仕様が異なります。
参考程度に特徴を少しご紹介いたします。

reCAPTCHA v1(バージョン1)

reCAPTCHAバージョン1は、ロボットが判別しにくいように非常に読みにくいごちゃごちゃしたアルファベットが表示され、それを解読し入力させるタイプのものでした。

現在はreCAPTCHA v1のサービスは終了しています。
サービス終了した理由としては、判別しづらい文字の画像が表示され、それを解読しなければならないため特に視覚障がいを持ったユーザにとってはアクセシビリティ上の問題があったからと推測します。

ちなみに筆者も表示された文字が難解すぎて何度も入力し直した苦い経験があります(笑)
最近では文字を解読して認証する方法を採用しているサイトが全体的に減っているので非常に使いやすくなってきていますね。

reCAPTCHA v2(バージョン2)

reCAPTCHAバージョン2は、「私はロボットではありません」のチェックボックスにチェックを入れたり、複数枚の画像の中から指示された画像を選択させるといった認証方法です。
現役のサイトでよく見かけるタイプですね。

reCAPTCHA v3(バージョン3)

reCAPTCHAの最新バージョンとなるのがこのreCAPTCHA v3です。
reCAPTCHA v3を導入するだけで、自動でロボットか人間かを判定してくれる仕組みとなりました。
問い合わせをするユーザーにとっては手間が減り、ユーザビリティの向上に繋がりますね!

reCAPTCHA v3をContactForm7に導入してみる

WordPressサイトで問い合わせフォームを設置するときにContactForm7というプラグインを使用しているサイトは多いと思います。
ContactForm7ではreCAPTCHAと簡単に連携できる機能が標準で備わっているので比較的簡単に導入する事ができます。

流れとしては、

  1. reCAPTCHAにサイトを登録してサイトキーとシークレットキーを取得する。
  2. ContactForm7に取得したサイトキーとシークレットキーを登録する。

 

と言った簡単な作業で導入できます。
では1ステップづつ詳しく解説していこうと思います。

reCAPTCHAにサイトを登録してサイトキーとシークレットキーを取得する

まずGoogleのreCAPTCHAのページからサイトの登録を行います。
https://www.google.com/recaptcha/intro/index.html

入力項目は下記を参考に入力してください。

ラベル reCAPTCHAの管理画面で使用される名称になります。わかりやすいお好みの名称を入力します。
reCAPTCHAタイプ 今回はv3を利用したいので「reCAPTCHA v3」を選択します。
ドメイン reCAPTCHAを使用するサイトのドメインを入力します。

入力できたら[送信]ボタンを押すとサイトキーとシークレットキーの取得は完了です。

ContactForm7に取得したサイトキーとシークレットキーを登録する

reCAPTCHAのサイトキーとシークレットキーを取得できたら、それらをContactForm7に登録を行います。
まず、ダッシュボードの[お問い合わせ]ー[インテグレーション]メニューをクリックします。

「他のサービスとインテグレーション」画面に遷移したら[インテグレーションのセットアップ]ボタンを押します。

下記画面に遷移したら、先ほど取得したサイトキーとシークレットキーを入力し、[設定を保存]ボタンを押します。

以上の設定を行うだけでreCAPTCHAの導入が完了します!

まとめ

今回はお問い合わせフォームのスパム対策としてreCAPTCHAの紹介と、WordPressのプラグイン「ContactForm7」でのreCAPTCHAの導入方法について解説いたしました。

ContactForm7を利用していてまだスパム対策をしていないという方は、とても簡単に導入できますのでぜひ試してみてはいかがでしょうか。

この記事を書いた人について

水貝 梨沙
水貝 梨沙
オーシャンアンドパートナーズ株式会社 システムエンジニア
在宅で愛犬と共に働いています!WEBデザインやフロントエンドに興味しんしんな今日この頃。
普段のサイト制作で発見したノウハウをコラムに載せています。