こんにちは! ジロウです。
ブログに「お問い合わせ」フォームを設置していると、頻繁にbot(自動化された仕組み)によるスパムコメントが届くようになる場合があります。
意味不明な英文の場合が多いのですが、その内容のほとんどは迷惑なセールスレターだったりします。
とは言え「お問い合わせ」フォームを削除するわけにも行かないので、これらのスパムを自動的にシャットアウトする策を講じることが求められます。
ここでは、「reCAPTCHA」を使った方法をご紹介したいと思います。
「reCAPTCHA」とは?
「reCAPTCHA」とは、自動的にアクセスしようとするプログラムからWEBサイトを防御するために開発されたシステムで、Googleによってサービス提供されています。
我々ブロガーの間でも一般的になっており、現在は「v3(ヴァージョン3)」がリリースされています。
以前は「私はロボットではありません」というチェックボックスが表示されたり、人間の目でしか読み取れないような歪んだテキストを入力させたりと、アクセスする健全なユーザーにも負担をかけるものでした。
でも、新しくなった「v3」からは、ロボットと人の選別が自動化され、ユーザーに煩わしい思いをさせることなく自分のサイトを保護することができるようになりました。
「v2」から「v3」にヴァージョン変更されたばかりの頃、
「前よりスパムが増えた」
といった声が多く聞かれましたが、昨今ではそれなりの効果を発揮しているようです。
僕が運営する複数のブログでも導入していますが、今のところ以前のようなスパムは全くと言ってよいほど届かなくなっています。
何も策を講じないでイライラするよりは遥かにマシ・・・といった感じでしょうか。
初めて導入する場合の設置方法
ここからは、「Contact Form 7」プラグインを使って「お問い合わせ」フォームを設置してあることを前提にお話しして参ります。
「ContactForm7」を使った「お問い合わせ」フォームの設置方法は、下記で解説しています。
「ContactForm7」をインストール&有効化すると、ダッシュボードのメニューに「インテグレーション」が追加されます。ここから「reCAPTCHA v3」のセットアップが行えます。
WordPressダッシュボードのサイドメニューから、[お問い合わせ]⇒[インテグレーション]と進みます。
「他のサービスとのインテグレーション」項目が表示されます。「reCAPTCHA」枠の[インテグレーションのセットアップ]をクリックします。
「reCAPTCHA」のサイトキーとシークレットキーの入力枠が表示されます。
Googleアカウントにログインした状態で、右上の[google.com/recaptcha]をクリックします。
「Google reCAPTCHA」のトップページに移るので、右上の[Admin console]をクリックします。
フォームが表示されるので、登録するサイトの情報を入力して行きます。
ラベル: サイトを識別するための名称を入力します。サイト名で良いと思います。
reCAPTCHA タイプ:「reCAPTCHA v3」を選択します。
ドメイン: ドメイン名を入力します。(注※「https://」や、最後の「/」は不要です。)
reCAPTCHA 利用条件に同意する: チェックを入れてください。
アラートをオーナーに送信する: 問題が検出された時の通知です。チェックを入れましょう。
入力できたら、画面下の[送信]をクリックします。
画面が移り、サイトキーとシークレットキーが表示されます。
これをコピーして「Contact Form 7」に貼り付けます。
再びWordPressダッシュボードのサイドメニューから、[お問い合わせ]⇒[インテグレーション]と進みます。
取得した「v3」のサイトキーとシークレットキーをそれぞれ貼り付け、[変更を保存]をクリックして完了です。
サイトをブラウザで開いてみると、ページの右下に「保護しているよ♪」的な表示が出るようになります。
ただこれ、ブログのどこを開いても表示されるし、「上に戻る」ボタンと重なる位置なのでユーザーにとってはちょっと邪魔かも知れないですね・・・。
後述する、
『「reCAPTCHA」の表示を必要なページだけに制限する方法』
で解説していますので、気になる方は試してみて下さい。
旧ヴァージョン(v2)からv3に変更する方法
「reCAPTCHA」の旧ヴァージョン(「v2」)を利用している方も多いと思うので、これを「v3」に変更する方法をご紹介します。
「v2」で使用した「reCAPTCHA」のサイトキーとシークレットキーは使えないので、新たにこれらを取得します。
まず、WordPressダッシュボードのサイドメニューから[お問い合わせ]⇒[インテグレーション]と進んで、下図の表示の右上にある[google.com/recaptcha]をクリックして、「reCAPTCHA」にアクセスします。
右上の[Admin console]をクリックします。
「reCAPTCHA」のレポート画面が表示されるので、右上の[+]ボタンをクリックします。
あらためて自分のサイトを登録するため、フォームに必要事項を入力して行きます。
ラベル: サイトを識別するための名称を入力します。サイト名で良いでしょう。
reCAPTCHA タイプ:「reCAPTCHA v3」を選択します。
ドメイン: ドメイン名を入力します。(注※「https://」や、最後の「/」は不要です。)
reCAPTCHA 利用条件に同意する: チェックを入れてください。
アラートをオーナーに送信する: 問題が検出された時の通知です。チェックを入れましょう。
入力できたら、画面下の[送信]をクリックします。
画面が移り、サイトキーとシークレットキーが表示されます。
これをコピーして「Contact Form 7」に貼り付けます。
再びWordPressダッシュボードのサイドメニューから、[お問い合わせ]⇒[インテグレーション]と進みます。
「v2」のキーを削除するために[キーを削除]をクリックします。
新たに取得した「v3」のサイトキーとシークレットキーをそれぞれ貼り付け、[変更を保存]をクリックして完了です。
試しに『お問い合わせ』ページを開いてみると、「v2」のようなコンタクトフォームの中ではなく、ページの右下に「保護しているよ♪」的な表示が出るようになります。
ただ、場合によっては、WordPressのサイドバーに次のような更新を促す表示が出たままになることがあるようです。
そんな場合には、目障りなので消して行きます。
WordPressのダッシュボードのどこかに上記のような表示があると思います(なければ、サイドバーの[コンタクトフォーム]をクリック)ので、[Contact form 7の設定を検証する]をクリックします。
下図のように表示されるので、[1個のコンタクトフォームを検証する]をクリックします。
下図のように表示され、サイドバーから目障りな数字が消えるはずです。
「reCAPTCHA」の表示を必要なページだけに制限する方法
通常のセッティングでは、ページ右下の「reCAPTCHA」マークの表示が、ブログのどこを開いても出るようになっています。
使用しているテーマに「上に戻る」ボタンの表示機能がある場合、重なってしまって鬱陶しいですよね・・・。
この表示は、プラグイン「Invisible reCaptcha」を利用することで、必要なページだけに制限することができます。
WordPressダッシュボードから、「プラグイン」⇒「新規追加」と進み、右上の検索窓に「Invisible reCaptcha」と入力して検索して下さい。
これをインストールし、有効化します。
WordPressダッシュボードから、「お問い合わせ」⇒「インテグレーション」と進み、[キーを削除]をクリックして、先に入力してあったキーを削除します。
続いて、右上にある[google.com/recaptcha]をクリックして、「reCAPTCHA」にアクセスします。
右上の[Admin console]をクリックします。
「reCAPTCHA」のレポート画面が表示されると思います。
複数のサイトを登録している場合には、左上のプルダウンメニューから該当するものを選択します。
続いて、右上の設定ボタン(歯車アイコン)をクリックします。
[reCAPTCHAのキー]をクリックするとサイトキーとシークレットキーが表示されるので、これらをコピーします。
WordPressダッシュボードに戻り、サイドメニューから「設定」⇒「Invisible reCAPTCHA」と進んで設定して行きます。
「Settings」欄で、次のように設定します。
Your Site Key: サイトキーを貼り付けます。
Your Secret Key: シークレットキーを貼り付けます。
Langage:「Automatically detect(自動検出)」を選択します。
Badge Position:「Bottom Right(右下)」で良いと思います。
上記の設定ができたら[変更を保存]をクリックします。
続いて「WordPress」欄を設定します。下図のように全てにチェックを入れれば良いと思います。
最後に「Contact Forms」欄で、「Enable Protection for Contact Form 7」にチェックを入れて保存すれば完了です。
記事ページなどの右下には「reCAPTCHA」マークが表示されず、設定したページだけに表示されるようになります。
以上、長くなりましたが、これで大抵のロボットによるスパムコメントは防ぐことができるはずです。
コメントを残す