WordPressで定番のお問い合わせフォーム作成プラグイン「Contact Form 7」でスパムメール対策をする方法についてです。
当サイトは、特に海外からのスパムメールが多く困っていたので対策しました。
この記事ではContact Form 7で行えるスパムメール対策として、reCAPTCHAにサイトを登録する方法と、その後のプラグインの設定方法をご紹介します。
「Contact Form 7」は設定からreCAPTCHAと簡単にリンクできます。
この記事の目次
お問い合わせフォーム(Contact Form 7)から送信されるスパムメールの対策
WordPressサイトではお問い合わせフォームに「Contact Form 7」というプラグインが良く使われますが、このプラグインを利用したスパムメールが後を絶ちません。
当サイトもここ最近、毎日のようにお問い合わせフォーム(Contact Form 7で作成)を経由してスパムメールが届くようになりました。内容はほとんどがバックリンクの営業メールですが、ブラックハットSEOなので迷惑極まりない!
皆さんお気づきかと思いますが、こんな感じに海外から、時に日本語訳も行って送られてくるメールは「Contact Form 7」を狙って自動送信されるスパムメールです。
つい先日は、ロシア(@mail.ru)から意味不明なメールも届きました。
メールアドレスの入力を必須にしてようが、捨てアドでやられるのね...
今まで無視していたのですが、いい加減うんざりしてきたので今回対策しました。
(朝の5:55分に来たメールをすぐ確認したらスパムメールだった時の疲労感...)
Contact Form 7のスパムメール対策方法は?
スパムメールの対策方法ですが、問い合わせフォームに「Contact Form 7」を使っている人にお勧めなのが、reCAPTCHAを使用してスパムメール対策を行う方法です。
reCAPTCHAはGoogleが提供しているBOT対策システムなので信頼度が高く、しかも「Contact Form 7」なら簡単に設定することができるので、今回はこれ一択かと。
スパムメールの自動送信には、WordPressで使われているREST APIが使用されていると思われますが、今の「Contact Form 7」にもREST APIが使われています。
Contact Form 7 4.8 では FormData オブジェクトが送信データの構築のために導入され、また Ajax 送信の送り先として二つのカスタム REST API エンドポイントが追加されます。
つまり、REST APIを停止するとContact Form 7そのものが使えなくなるのでダメ。
また、海外のIPアドレスを制限する方法も考えましたが「Contact Form 7」に関する機能だけにIPフィルターをかけるのは難しく、効果も薄そうなのでやめました。
ではreCAPTCHAの設定方法について順番に見ていきましょう・w・
reCAPTCHAを使ってスパムメール対策
幸いなことに「Contact Form 7」は設定からreCAPTCHAと簡単にリンクできます。
reCAPTCHA はスパムやその他の自動化された嫌がらせからあなたを守ります。Contact Form 7 の reCAPTCHA インテグレーションモジュールを使えば、スパムボットによる不正なフォーム送信を遮断できます。
今回はこれを使ってスパムメールを防ごうと思います。
既にご存じの方も多いと思いますが、reCAPTCHA(リキャプチャ)とは、Googleが無償で提供している「フォームを利用したスパムを防ぐ認証システム」です。今回のようなBOT(ボット)を使ったスパムメールの対策にも役立ちます。
「Contact Form 7」にreCAPTCHAを設定するには、
- サイトキー
- シークレットキー
の2つが必要になりますが、これはreCAPTCHAにサイトを登録して取得する形になります。なので、まずはreCAPTCHAから必要なキーを入手しましょう。
reCAPTCHAにサイトを登録する
「reCAPTCHA」は無料で使うことができますが、使用するにはGoogleアカウントが必要です。Googleアカウントをお持ちでない方は先に作っておいて下さい。
外部リンク
【reCAPTCHA:新しいサイトの登録】
reCAPTCHA
まず上記のリンクを開き、reCAPTCHAのサービスに新しいサイトを登録します。
Googleアカウントにログインしていない場合は、ログイン画面が出るので、ログインして次のページに進みましょう。
新しいサイトの登録画面が開いたら、以下の情報を入力します。
- ラベル:自分が分かり易い名前(サイト名)でOK
- reCAPTCHAタイプ:スコアベース(v3)のままでOK
- ドメイン:サイトURL(https://は不要)を入力する
入力したら、利用規約の同意にチェックして「送信」を押します。
するとすぐに「サイトキー」と「シークレットキー」の2つが表示されるはずです。
続いて、これをContact Form 7の設定に打ち込みましょう。
ポイント
設定の完了には1分程度かかるようですが、このまま進めてOK!
Contact Form 7の設定からキーを登録する
reCAPTCHAに自分のサイトを登録して「サイトキー」と「シークレットキー」を入手できたら、続いて「Contact Form 7」の設定画面にこのキーを登録します。
まずWordPressの管理画面にログインし...
管理画面メニュー > お問い合わせ > インテグレーション > インテグレーションのセットアップ
へと進みましょう。(Contact Form 7を有効化していれば存在する。)
「インテグレーションのセットアップ」を開いたら、reCAPTCHAで先ほど入手した
- サイトキー
- シークレットキー
の2つを入力して「変更を保存」ボタンを押します。
reCAPTCHA はこのサイト上で有効化されています。
という文言が出れば設定完了!
これでreCAPTCHAが働いてくれるので、今後スパムメールが届く事はなくなるはず!
reCAPTCHA設定完了後の補足
reCAPTCHAを設定した後ですが、今のところスパムメールは来ていません。
流石Googleの認証システム、BOT対策ツールといったところでしょうか。
なお、reCAPTCHAは管理画面(↓)から登録情報の編集やreCAPTCHAの働き具合が確認できるので、必要ならお気に入りに登録しておいても良いでしょう。
外部リンク
【reCAPTCHA 管理者ページ】
v3 Admin Console
以上でスパムメール対策の作業は完了したのですが、1つ気になることが発生...。
それはContact Form 7に今回の手順でreCAPTCHAを設定した後、reCAPTCHAのロゴがサイトの全ページに表示されるようになってしまったことです...
これを消す方法については別の記事(↓)でご紹介します。
まとめ
以上、Contact Form 7で実装したお問い合わせからスパムメールが届く時の対策方法についてでした。
記事の冒頭でも触れましたが、REST APIの無効化はContact Form 7自体のメール送信機能も殺してしまいます。また.htaccessなどによるIPアドレスの制限もピンポイントの制御は難しそうでした。
海外のスパム勢はIPアドレスもメールアドレスもランダムに変更して送り付けてくるようなので、reCAPTCHAを使うのが最も有効なスパム対策方法だと思います。
ではではこのへんで・w・