[WordPress]Contact Form 7お問合せフォームで簡単スパム対策

WordPressでサイト運営をしていると、問い合わせフォームの設置は必須になる場面が多いと思います。しかし、せっかく設置した問合せのフォームから英語のメールが来ることが多々あります。なにも対策していないとものすごい数のメールが溜まってしまい、消す作業も一手間。あまりアクセス数が無いサイトでも、スパムはシステムが自動的にやっているので、対策をしていないとおかまいなしに送ってきます。

また、送り先を実在するメールアドレスにすることで、第3者へ迷惑をかけることもあります。
※自動返信メールを設定しているサイトも多く、メールアドレス欄に勝手にアドレスを使われ、覚えのないメールが大量に来てしまうという被害が起きてるらしいです。

なにか簡単に出来る有効な対策を。と推奨されているGoogleを使った設定方法を試したのでその方法を置いておきます。

Googleのアカウント取得〜reCAPTCHA(リキャプチャ)v3を導入する

reCAPTCHA(リキャプチャ)v3はGoogleの提供するスパム対策の仕組みです。システム的に怪しい動き(自動で大量送信などスパムによく見られる行為)をしていないかを自動で判断してスパムメールを送信させない無料で導入できるシステムです。
Googleのアカウントが必要にはなりますが、すでにお持ちのアカウントでも可能です。ただし導入するとサイト右下にページTOPとかぶるような場所にアイコンが出てきます。(※非表示にも出来ます。)


Googleにサイトを登録する

reCAPTCHAを使用するにはGoogleアカウントが必要です。(Googleアカウントをお持ちの場合すぐ使えます。)
まずMY reCAPTCHAページへ移動して使用したいGoogleでログインしてください。ログイン後すぐに設定画面になります。

reCAPTCHAタイプはv3を選んでください。
アラートをオーナーに送信するかはお好みでOK。サイトに何かあった場合にメールを受け取りたい場合はそのままチェックして於いて大丈夫です。
ラベル、タイプ、ドメイン、オーナーアドレスなどすべて記入後、送信すると設定するためのサイトのサイトキー (site key) とシークレットキー (secret key) が取得できます。

対策1:コンタクトフォームから設定する

ここまでの作業が終わったらあと少しで完了します!

管理画面から、コンタクトフォーム(お問合せ)>インテグレーション を選択、開きます。

reCAPTCHAのインテグレーションのセットアップをクリックし、先程取得したサイトキーとシークレットキーを設定します。

これでコンタクトフォームからの設定は終了となります。

無事終わったとサイトを確認すると、reCAPTCHAのロゴがサイト右下に表示されました。表示されていれば正常に作動している証になります。
しかしそこには先客”ページのトップへのリンクボタン”があり、急にごちゃついてしまいました。

デザイン的にも出来れば消したいのでもう一作業してみます。

reCAPTCHAのロゴを非表示にする

reCAPTCHAの公式FAQでもアイコンを非表示にすることを許可されています。
※ただし、その場合はGoogleのプライバシーポリシー利用規約の表示をサイトのどこかに入れるように書かれています。

You are allowed to hide the badge as long as you include the reCAPTCHA branding visibly in the user flow. Please include the following text:
This site is protected by reCAPTCHA and the Google
Privacy Policy and
Terms of Service apply.

reCAPTCHAのアイコンを消す方法は至ってシンプル。cssに以下の記述を追加します。

.grecaptcha-badge { visibility: hidden; }

管理画面から 外観 > カスタマイズ > 追加css
で、入力欄に上記のコードを追加して「公開」でOKです。

もう一度サイトを確認してロゴが消えていれば完成です。

プラグインをダウンロードして設定

サイトキー、シークレットキーを取得後からの作業となります。一度上の作業などをされてる場合は一旦問合せのインテグレーションで設定したキーは削除してから、こちらの作業をしてください。

Invisible reCaptcha for WordPressを使用する

こちらの方法はまず、”Invisible reCaptcha for WordPress”をダウンロードし、有効化します。プラグイン>新規追加 から検索して適用してください。

ダウンロード、有効化が終わると  設定>Invisible reCaptcha が選択出来るようになります。

ここから設定を行っていきます。


取得したサイトキー(サイト鍵)、シークレットキー(秘密鍵)をそれぞれ指定の場所へ記入

言語は日本語(Japanese)を使用

バッジ位置は”インライン”

以上の内容で変更を保存してください。

そして、WordPressや問い合わせフォームのタブを選択し、ログインフォームなど任意の場所での保護を有効化してください。

コンタクトフォーム7の保護を有効化のチェックは忘れずに入れましょう。

これでコンタクトフォームのみでreCAPTCHAが動作するようになりました。

サイトに戻りロゴがなくなっているのを確認できたら作業終わりです。

その他様々な方法があると思いますが、今回は以上の方法での邪魔くさいスパムメール対策を進めてみました。
最後にもう一つ、コンタクトフォーム7の設定で必須項目でチェックボタンを設定します。
“送信することに同意します”などお好きな言葉で設定すればチェックボタンを押さないと送信できない状態が作れます。

ただ最近のスパムはこういったチェックも難なくクリアして送ってきてしまうみたいなので効果は薄いかもしれません、、、