問い合わせフォームにreCAPTCHAを設定しよう

問い合わせフォームのスパムメール・スパムメール配信対策、万全ですか?

最近、問い合わせフォームを標的にしたスパムメール配信行為が急増しています。
自分のところにはスパムメールが届いていない・少ないから大丈夫、ではないのです。
問い合わせフォームの自動返信(確認メール送信)機能を悪用して、サイトを通じて全く関係のない第三者にメールが送信されてしまう可能性があるのです。

問い合わせフォームのスパム対策がまだお済みでなければ、今すぐreCAPTCHAv3導入しましょう。
WordPressサイトでMW WP FormまたはContact Form 7、SnowMonkeyあたりをお使いなら、15分・・・いや10分でセットアップできます。

よくわからない・・・担当者が辞めちゃった、都合によりWordpress本体やプラグインのアップデートができない、などでお困りの場合は、ホームページのスポット対応も承っておりますので、お問合せフォームよりご相談ください。

※弊社で保守サービスをご利用いただいておりますお客様には、標準でスパムメール対策およびGoogle reCAPTCHA v3の導入を実施済でございますのでご安心ください。

目次

フォームの自動返信機能を利用したスパムの被害

  • プログラム(bot)を用いて数万単位でメール配信、標的のサーバーやメールボックスをパンクさせたり業務をストップさせる(メールボム)
  • 大量の迷惑メール配信により、送信したサーバーのIPアドレスやドメインがブラックリストに登録される
    (通常送信したメールが迷惑メール判定されやすくなる、メールが届かなくなる、アンチウイルスソフトの判定によりWEBサイトへのアクセスがブロックされる)
  • 悪意のあるURLやスクリプトによる、フィッシングやマルウェアの被害
  • 上記のようなサイバー攻撃の踏み台として利用されることによる、信頼の低下、控訴問題への発展

被害に合われた方にとっては、メールの送信元=問い合わせフォームの管理者が加害者に見えてしまうという点に注意が必要です。犯人として疑われたり、サイト管理の甘さから責任を問われたり、場合によっては損害賠償を求められる可能性もあります。

フォームの自動返信でスパムメールが送信される手順と対策

  1. 攻撃者(またはbot)が、問い合わせフォームのメールアドレス欄に、標的のメールアドレスを入力
  2. 問い合わせ内容などの自由入力欄に、フィッシングサイトのURLや、悪意のあるスクリプトを入力し送信
  3. 問い合わせフォームから、攻撃者が入力したメールアドレス宛に自動返信メールが送信される
  4. botにより1〜2が繰り返されることにより、複数の標的に大量のスパムメールが送信される

キモは③の、「自動返信メール」が送信されてしまうことです。
なので、そもそも自動返信メールを送らない・機能を無効にする、という解決策もアリです。
なんのために自動返信が必要なのか?本当に必須なのか?今一度考えてみましょう。

そのほか、バリデーションの強化や入力項目を増やす(入力する側はめんどくさいですが)、ランダムなクイズ、禁止用語・必須用語リスト、人間でないと入力が難しい項目(難読うねうね文字・読み上げた音声の入力)など、人間が入力していることを判別するための機能を設けることで、botによる送信を防ぐことができます。

また、自前の問い合わせフォームでの運用をやめて、formrunなどの問い合わせフォーム管理サービスや、Microsoft Forms、無料のGoogleフォームを利用する、という手もあります。無料で使えて、セキュリティも安心、スプレッドシートでの集計も簡単にできるのでGoogleフォームかなりオススメです。

reCAPCHAとは

reCAPCHAとは、Googleが開発・提供するbot検知・遮断ツールです。
問い合わせフォームの利用やログインの際に出てくる「私はロボットではありません」のチェックボックスや、「信号機の画像を全て選択してください」と9マスの画像が出てくるアレ(めんどくさいやつ)です。

これらのreCAPTCHAはv1〜v3(2022年1月現在)まであり、上に挙げた2例は reCAPTCHA v2です。これらのbot判別チェックをクリアしないと、フォームの送信ができないようになっています。

人間が手作業でbotチェックをクリアするv2でも良いのですが、利用する側としてはひと手間あってめんどくさいですよね。チェックボックスだけならまだしも、画像選択のやつなんて、うっかり間違えたり、粗すぎて見えなかったり、何回やっても次の画像が出てきたりなんかした経験ありませんか?(笑)また、実装方法によっては、発火のタイミングをコントロールする必要があったりと、多少手間がかかります。

一方、2018年10月に正式公開されたreCAPCHA v3は、ユーザーの行動を自動で学習・スコア化してbot判別を行うので、利用する側の手間がかかりません。何らかの理由でうまく動作しない場合を除いて、通常はv3がおすすめです。reCAPCHAは100万回/月(1000回/秒)までは無料で利用できますので、通常ほとんどのケースでは無料です。

WordPressサイトにreCAPCHA v3を設定する方法

読者の方、および弊社(LOFIR)のお取引先様のほとんどがWordpressサイトを運用していらっしゃると思いますので、Wordpressの問い合わせフォームの代表的なプラグイン(MW WP Form/Contact Form 7/Snow Monkey Form/A Forms)について、reCAPCHA v3の設定方法を説明します。

事前準備(Google reCAPTCHAの利用登録)

  1. サイトを管理するGoogleアカウントにログインした状態で、Google reCAPTCHAのサイトにアクセス
  2. ページ上部の「v3 Admin Console」をクリック
  3. ラベル(適宜)・reCAPTCHAタイプ(v3)・ドメイン(利用するサイトのドメイン)を入力
  4. 「利用条件に同意する」「アラートをオーナーに送信する」にチェックして「送信」
  5. サイトキーとシークレットキーが作成される

サイトキーとシークレットキーの画面を閉じてしまった場合は、v3 Adomin Consoleの「歯車アイコン(設定)」から、「reCAPTCHAのキー」をクリックすると再表示できます。

MW WP Formの場合

  1. 管理画面>プラグインの「新規追加」からreCAPCHA for MW WP Formを検索して追加・有効化
  2. 管理画面>左側メニューの「MW WP Form」の中に追加された「reCAPTCHA v3」をクリック
  3. 事前準備で作成されたサイトキーとシークレットキーをそれぞれコピペして「変更を保存」
  4. Threshold score(閾値)の項目は空白でOK
  5. 同画面に記載の通り、ショートコードをMW WP Formの当該フォームに追加
  6. 「recapcha-v3」のバリデーションルールを作成し、「reCAPTCHA V3」にチェック
  7. 当該ページの画面右下に、reCAPCHAのマークが確認できれば設定完了

※reCAPCHA for MW WP Formの場合、当該フォームのページにのみreCAPCHAマークが表示される仕様です。
(サイト全体ではなく、当該ページのみでbot判定・学習する)

reCAPCHA導入時は、MM WP Formの画面遷移の設定が必要になる場合もある

MW WP Formは、同一ページ内で「入力画面」「確認画面」「完了画面」の内容を切り替えて表示することができるため、入力用のページさえ用意すればフォームとしては動作させる事が可能です。

これまで入力画面(ここではcontact)の固定ページのみで運用していたクライアント様で、reCAPCHAを導入して以降、確認画面への遷移時に「このページには直接アクセスできません」のエラー表示が出て送信できない事が度々ある、とのご相談がありました。

エラーが発生する条件は判明していませんが、確認画面・完了画面の固定ページを新たに設けて遷移先URLとして設定することで、結果的には解消しました。

Invalid reCAPTCHA Secret key.のエラー

投稿画面上でなく、Wordpressテーマのテンプレート(.phpファイル)内に直接ショートコードを入れていた場合、フォームの「送信」後に「Invalid reCAPTCHA Secret key.」と赤字で出て先に進めなくなる場合があります。

「reCAPCHA for MW WP Form」のショートコードは、<?php the_content(); ?>の投稿本文内で呼び出される必要がある、言い換えればphpファイル直書きではなくWordpress投稿画面上で入力する必要があるようです。

エラーが発生する例
<?php /* Template Name: 問い合わせ用テンプレート*/ ?>
<?php get_header(); ?>

	<div class="contact-wrap">
		<h1 class="ttl">お問合せフォーム</h1>
		<?php echo do_shortcode('【mwform_formkey key="1234"】'); ?>
	</div>

<?php get_footer(); ?>

ページテンプレートを用いており、コンテンツとショートコードはphpに直書き。固定ページの中身は空。ブロックエディタ(Gutenberg)以前に作られたオリジナルWordpressテーマでは、このような構成をよく見かける。

修正例
<?php /* Template Name: 問い合わせ用テンプレート*/ ?>
<?php get_header(); ?>

	<div class="contact-wrap">
		<h1 class="ttl">お問合せフォーム</h1>
		<div class="post-content">
			<?php the_content(); ?>
		</div>
	</div>

<?php get_footer(); ?>

ページテンプレート内に<?php the_content(); ?>を記載し、固定ページの本文を呼び出す仕様に変更。固定ページの本文中に、ショートコードを記載。

WordPressブロックエディタでのショートコード入力例

Contact Form 7の場合

  1. 管理画面>お問い合わせの「インテグレーション」をクリック
  2. reCAPCHAの項目にある「インテグレーションのセットアップ」をクリック
  3. 事前準備で作成された「サイトキー」「シークレットキー」をそれぞれコピペして「変更を保存」

Contact Form 7公式サイトのreCAPCHA v3解説ページは以下より。

※Contact Form 7の場合、サイトの全ページにreCAPCHAマークが表示されます。functions.phpにてカスタムすることで、表示を特定ページのみに制限することは可能です。

Snow Monkey Formの場合

  1. 管理画面>Snow Monkey Formsの「reCAPTCHA」をクリック
  2. 事前準備で作成された「サイトキー」「シークレットキー」をそれぞれコピペして「変更を保存」

Snow Monkey公式サイトのreCAPTCA v3解説ページは以下。

※Snow Monkey Formの場合、サイトの全ページにreCAPCHAマークが表示されます。

A Formsの場合

  1. 管理画面>フォーム>編集>お客様の属性で「reCAPTCHA v3」を追加
  2. 事前準備で作成された「サイトキー」「シークレットキー」をそれぞれコピペして「変更を確定」&「保存」

Failure(失敗)だけでなく、Soft-Pass(一応通過)のスコアの設定も可能なのは珍しいですね。
Soft-Passの場合、フォーム送信は通過しますが、管理者宛のメールが配信されない仕様なので、運用の際はご注意を。

※A Formsの場合、当該フォームのページにのみreCAPCHAマークが表示される仕様です。
(サイト全体ではなく、当該ページのみでbot判定・学習する)

reCAPTCHAマークが表示されないとき

以下のあたりを確認してみるといいかもしれません。

  1. reCAPTCHAのタイプ(v3でなくv2になっていないか)
  2. z-indexの関係で、reCAPCHAマークの上に重なって他の要素が表示されていないか
  3. jQueryやjavascriptの読み込みが干渉していないか(Wordpressによる出力を介さずに直書きで出力している)

余談:サイバー保険も充実してきました

増え続けるサイバー攻撃。セキュリティ教育や制度・設備が追いつかないという声も多く聞きますが、一方でサイバーリスクに対応する保険を取り扱う会社も増えてきました。

純粋に読み物として、ためになるので、よろしければご一読ください。
オススメ保険の紹介ではありません(笑)

エックスサーバーのご紹介

エックスサーバーでは、脆弱性情報などの重要なセキュリティアップデート情報の他、会社ホームページの作り方運用マニュアルブログの初め方(動画)などのお役立ち情報を随時配信しています。

高コスパ・高信頼性でオススメのエックスサーバー

エックスサーバーは高品質・高機能・高コスパで、ビジネス利用にもオススメできるレンタルサーバーです。

合同会社LOFIRはエックスサーバーのビジネスパートナーです。


契約お手続きのサポートはもちろん、バックアップやデータベース設定、メールアカウントの設定もご対応可能です。サーバーの乗り換えや、はじめてのレンタルサーバー契約などお気軽にご相談ください。

\ 10日間無料お試し /

  • URLをコピーしました!
  • URLをコピーしました!

WHO WROTE

komadairaのアバター komadaira 代表社員・COO

地方テレビ局、歯科コンサル、中堅SIerを経て独立。ダイヤルアップ接続の時代にHTMLに魅せられ、なんだかんだ10年以上WEB制作に関わり続けている。

目次