プログラミング未経験者の備忘録

ノンプログラマーが社内SEになったのでイチからプログラミングを勉強し始めました!

Contactform7のスパムメール対策にreCAPTCHAを導入する

今回はWordPressで人気の問い合わせフォームを簡単に設置できるプラグイン「Contact Form 7」を利用しているときにスパムメールで悩まされた時の対策として有効な方法について書いていきます。

 

スパムメールの要件

  • 海外からのメールが多いこと
  • 国内外問わず営業してくる業者が増えたこと
  • 関係のない英文

考慮しなければいけないこと

海外からの問い合わせもあるため国外IP全てをはじくことはできない。

 

これらの要件でなるべく減らすために行った対策について書いていきます。

 

①必須項目を追加

前回までは全ての項目に対して(必須)項目を設けておらずメールアドレスのみでどんな回答でも受け付けられるようにしていたのに対して、最低限必ず入力して欲しい項目に対して(必須)の項目を設けました。

②reCAPTCHAを導入

reCAPTCHAはGoogleが提供している無料のサービスで、ウェブサイトをスパム行為や不正行為から保護します。

「CAPTCHA」は「コンピューターと人間を区別するための完全自動化された公開チューリングテスト(Completely Automated Public Turing test to tell Computers and Humans Apart)」の頭字語です。人間はCAPTCHAを簡単に解くことができますが、「bot」やその他の悪意のあるソフトウェアにとってはCAPTCHAを理解することは困難です。

引用元:Google検索ヘルプ

reCAPTCHA導入のメリット・デメリット

メリット

  • 手軽に導入できる
  • 見栄えも悪くない
  • スパム対策としては割と有効

デメリット

  • Googleアカウントが必要
  • 利用条件に則り運用しないといけない

 

WordPressでContact Form 7使用時にreCAPTCHAを導入する二つの方法

いずれの方法でも必要になるのがreCAPTCHAを有効にしないといけませんので以下のリンクから利用出来るように設定を行っていきます。

reCAPTCHAを使用できるように設定する

f:id:su3se:20200602150937p:plain

まずは以下のGoogleのページで設定を行います。

www.google.com

トップページにアクセスしたら[Admin console]をクリック

f:id:su3se:20200602145915p:plain

新しいサイトを登録します。

入力する項目は「ラベル」「reCAPTCHAタイプ」を選択します。

f:id:su3se:20200602150707p:plain

入力して問題がなければ「サイトキー」「シークレットキー」が表示されます。

f:id:su3se:20200602150937p:plain

基本的なやり方は「ドメイン」を登録して使用したキャプチャーの種類を選択します。

reCAPTCHAの種類について

reCAPTCHA v3
スコアに基づいてリクエストを検証します。
※自動判別

reCAPTCHA v2
チャレンジを使用してリクエストを検証します。
※類似画像の選択

これで[送信]をかければすぐに使用できるようになります。

WordPress側の設定

①Contact Form 7の「インテグレーション」で設定する

f:id:su3se:20200602145557p:plain

設定するときは先ほど取得した

f:id:su3se:20200602145609p:plain

f:id:su3se:20200602145636p:plain

サイトキーとシークレットキーを設置して作業完了です。

※この設置方法ですとページ全体を保護します。

②「Invisible reCAPTCHA for WordPress」で設定
Invisible reCAPTCHA for WordPressの[Setting]から「Contact Forms」の設定を行ないます。

Settingでは初めに「サイトキー」「シークレットキー」を入力

f:id:su3se:20200602151608p:plain

 

次にWordPressの設定を行います。

f:id:su3se:20200602151715p:plain

※Enable Protection for Contact Form 7
 Contact Form 7の保護を有効にする

 

以上で設定は完了です。

補足説明

WordPressプラグインでreCAPTCHAを設置する場合に「Contact Form 7」のインテグレーションでreCAPTCHAを設置した場合はサイト全体にreCAPTCHAがかかりPC版ならどのページも右下に保護のマークが表示されてしまいます。これを消すことは規約違反になるようですが、「Invisible reCaptcha for WordPress」で設置する場合は「Contact Form 7」にだけ設置することが出来るようになります。

今回選択したのは問い合わせフォームのページだけに設置したかったので「Invisible reCaptcha for WordPress」でreCAPTCHAを付けるという選択を取りました。