Contact Form7にスパム対策をして生じた問題への対処

PC/IT

このブログは、ワードプレスというソフトを使って作成しています。
お問い合わせについては、専用のページにContact Form7というプラグイン(追加ソフト)を使って問い合わせフォームを作成しています。

問い合わせフォームについては、問い合わせしたいことがある方が、質問や連絡先などを入力して送信するのが本来の使い方です。

しかし、フォームから問い合わせした方へ問い合わせ内容確認の自動返信メールを送付する設定にしていた場合は、連絡先に別のメールアドレスを入力することで、問い合わせフォームを悪用して多数の迷惑メール(スパムメール)を送付することができてしまいます。

その悪用を防ぐスパム対策を行ったところ、トラブルが次々と起こるようになりました。

今回は、Contact Form7にスパム対策をしたことで起こったトラブルと、最初したことを書いています。

reCAPTCHAを導入したら、フォームで送信できなくなった

迷惑メールを防ぐ手段として、グーグルの「reCAPTCHA」があります。
これを導入することで、グーグルがスパムと判定した内容のフォームはエラーとして送信ができなくなります。

使い方としては、グーグルのreCAPTCHAのサイトに自分のサイトの情報とGメールの連絡先などを入力し、reCAPTCHAを使うためのキーとなる文字列を発行してもらいます。

次に、ワードプレスの管理者画面の「お問い合わせ」→「インテグレーション」を押し「外部APIインテグレーション」画面を表示します。
この中に「reCAPTCHA」があるので、「インテグレーションのセットアップ」ボタンをを押します。
すると、reCAPTCHAの「サイトキー」と「シークレットキー」の入力画面になり、グーグルのreCAPTCHAのページからコピーして貼り付け、保存します。

これで、フォームからの迷惑メールを防ぐことができます。

しかし、この方法には問題がありました。
セキュリティが強くなりすぎて、パソコンからの送信がすべてスパムと判定され、一切送信できなくなりました。
時間を空けて何度か試しても送信ができなかったため、ほかの方法を探すことにしました。

reCaptcha by BestWebSoftを導入したら、2つの問題が起きた

reCaptcha by BestWebSoftの導入

ワードプレスのインテグレーションの設定画面から「reCAPTCHA」を設定した場合、セキュリティが強くなりすぎてフォームから送信できなくなりました。

そのため、プラグインを経由して「reCAPTCHA」の設定をすることで、フォームから送信できない問題を回避することにしました。

プラグインについては、下記のサイトを参考に「reCaptcha by BestWebSoft」(BestWebSoft による reCaptcha)を使用しました。

「Invisible reCaptcha for WordPress」の代替プラグインは?おすすめプラグインを紹介!
Invisible reCaptcha for WordPressのプラグインが更新されていないので、代替プラグインを探してみました。この記事では、「Invisible reCaptcha for WordPress」の代替におすすめのプラ...

ワードプレスの管理画面からこのプラグインを検索して導入します。
導入したプラグインを有効化し、設定画面では次のように設定します。

  • reCaptcha バージョン
    「バージョン3」を選びます
  • サイトキー、秘密鍵
    グーグルの「reCAPTCHA」の画面のキーをコピーして貼り付けます
  • reCaptcha を有効にする
    「ログインフォーム」がチェックが入っていないことを確認します。
    それ以外の項目はチェックを入れます。

そして、「Save Changes」ボタンを押して設定完了です。

これでフォームへの入力とメールの自動返信も正常に動作するようになりました。
ところが、これで解決せず、別の問題点が出てきました。

問題1:コンタクトフォームで警告が出るようになった

このプラグインを導入してから、コンタクトフォームの設定画面を見ると、「メール(2)」というフォームを入力した人への自動返信メールの設定で「安全でないメール設定が十分な防御策なく使われている」という警告が出るようになりました。

これは、フォームを入力した人が連絡先のメールアドレスを書く場所で、これを入力してもらうことで、このアドレスに自動返信メールが届く仕組みです。

しかし、スパムメールは、この仕組みを悪用して、返信先に他人のメールアドレスを入力することで、サイトのフォームから迷惑メールを多数の人に送信できてしまいます。

この警告を無視することで、自動返信メールの設定を残した状態でフォームを稼働させる点では問題ないように思えます。

しかし、万が一当サイトのフォームを悪用して迷惑メールが多数送付された場合の危険性を考えて、今は自動返信しない旨を表示し、フォームを問題なく送信できるようにしました。

問題2:サイトの管理画面にログインできなくなった

上記で、このプラグインの設定画面の「reCaptcha を有効にする」の項目では「ログインフォーム」がチェックが入っていないことを確認します、と書きました。

実は、ここで「ログインフォーム」にもチェックを入れたことで、サイトの管理画面にログインできないという問題が起こりました。

サイトの管理画面では、IDとパスワードを入力してログインをします。
その際、このプラグインが入っている場合は、その入力画面もreCaptchaの対象となります。
これが原因で、何度正しい内容を入力しても、reCaptchaがスパムと勘違いをして、ログインを拒否するようになってしまいました。

対処法としては、ブログのサーバー(当サイトの場合はエックスサーバー)にログインをし、プラグインをサーバーから直接削除することで、ワードプレスでログインできるようになりました。

ファイル管理(ファイルマネージャー)でサイトの名前を選んで、「public_html」→「wp-content」→「plugins」とたどっていき、このプラグインを削除します。

これでワードプレスの管理画面にログインできるようになったため、再度「reCaptcha by BestWebSoft」プラグインの導入と設定を行うことで、無事にログインも迷惑メール対策もできるようになりました。

おわりに

ワードプレス、reCAPTCHA、コンタクトフォーム、このサイトで使っているCocoon、など関連するものを調べましたが根本的な原因と解決法は、正直分からないままです。

たぶん、どれかのアップデートで相性が合わなくなった不具合かなとは思います。

わたしができた確実な解決法としては、プラグイン経由でreCAPTCHAを使い、自動返信メールを解除した状態でコンタクトフォームを設置、でした。

管理画面にログインできなくなったときは、何が起きたのかわかりませんでした。
自動返信メールは機能しないものの、スパムを防ぎつつフォームを正常に使えるようにできたので、ほっとしています。

タイトルとURLをコピーしました