WordPressのセキュリティが重要であることに議論の余地はありません。セキュリティ上の欠陥は、サイトに深刻な被害をもたらします。加えて、ハッカーがボットを使用して、素早く効率的にサイトを攻撃する昨今、勝利の女神が敵に微笑む可能性さえ、濃厚に思えるものです。

ただ、幸いなことに、ボットやスパム行為の犯人をWordPressサイトから締め出すために、こんなシンプルなツールが使えます。CAPTCHA(キャプチャ)【Completely Automated Public Turing test to tell Computers and Humans Apart】です。簡単にウェブサイトに組み込んで、セキュリティを高めることができます。

今回の記事では、CAPTCHAとは、そして、CAPTCHAがハッカーやスパムからサイトを保護する仕組みについてご紹介します。さらに、これをサイトに追加する方法と、最高のWordPress CAPTCHAプラグインもいくつか扱います。

それでは参りましょう!

まずはCAPTCHAを理解しよう

CAPTCHAが機能しているところは、実際、オンラインで何度も見たことがあるです。さまざまな形式がありますが、最も一般的なのは、目を凝らして解読する必要のある「歪んだテキスト」です。低解像度の写真のまとまりから特定の条件を満たす画像を選択するものもあります。

画像を使ったCAPTCHAの例
画像を使ったCAPTCHAの例

これにより表示される課題は、人間であれば、ほとんど簡単にクリアすることができます。一方で、今日の高度なボットであっても、歪んだ言葉や画像の断片を理解することはできません。このようにして、テストをクリアできない場合には、サイト(またはCAPTCHAが保護するその他のもの)からブロックされます。

ウェブサイトのセキュリティと信頼性を損なう危険性のあるいくつものスキームでボットが使用されるため、この機能の存在価値は計り知れません。例えば、広く知られたハッキング手法であるブルートフォース攻撃は、サイトにログインできるまで、ボットを使用してログイン情報を何度も繰り返し入力します。

クロスサイトスクリプティング(XSS)というサイバー攻撃もあり、これは、ログインページやコメントセクションなどのフォームを介してサイトに悪質なコードを埋め込みます。これにより、サイトにマルウェアが保存されたり、情報が盗まれたり、様々な悪影響が及ぼされます。

ボットは、質の低いリンクでコメントセクションを埋め尽くすことにも使用されます。この被害を受けると、サイトの検索エンジン最適化(SEO)の観点からマイナスの影響があり、加えて、普通のユーザーによる閲覧の利便性が損なわれます。スパムが表示されることは「迷惑」の域を超え、ユーザーに対して「サイトが十分に保護されておらず、監視が不十分」だという印象すら与えます。

ユーザーが情報を入力できる全ての場所(ありとあらゆるフォーム)は、ボットによる攻撃に対して脆弱です。そこで、フォーム送信前にCAPTCHAを要求することで、「人間を装ったアクセス」をはじいたり、悪意のあるコードがサイトに挿入されるのを防いだりすることができます。

Google reCAPTCHAとは

CAPTCHAは、サイトにさまざまなメリットと保護をもたらすものですが、いくつかの欠点があります。たとえば、ユーザーエクスペリエンス(UX)に悪影響を及ぼす傾向があります。簡単なテストではあるものの、ユーザーによる本来の操作をスピードダウンさせることで、サイトの使い心地をある程度下げてしまう側面は否めません。

さらに、視覚障害や失読症などを持ったユーザーにとっては、 CAPTCHAをクリアするのが難しい場合もあります。人間のユーザーをサイトから不注意に締め出すことは(たとえその過程でボットをはじくことができても)、サイト運営者にとっても、利用者本人にとっても問題です。

2014年、Googleは2007年以来使用していた歪んだ単語、そして画像を用いたテストの後継であるNo CAPTCHA reCAPTCHAをリリースしました。この新たなシステムでは、ユーザーは「私はロボットではありません」というボックスにチェックを入れるだけでOKです。

WordPressログインページのGoogle reCAPTCHAチェックボックス
WordPressログインページのGoogle reCAPTCHAチェックボックス

これは、従来のCAPTCHAよりもはるかに簡単かつ高速であり、幅広いユーザーが利用できます。さらに、Googleはこのテクノロジーの改善を続け、2018年には、インビジブルreCAPTCHAと呼ばれる最新版をリリース。ユーザーによる意図的なアクションを必要とせずにボットを検出します。

WordPressサイトにCAPTCHAを追加すると、使用するテストの種類が選択できます。Google reCAPTCHA v2またはv3を実装すると、より気軽に利用できるサイトになり、アクセシビリティも高まります。

WordPressサイトにCAPTCHAを追加する方法(3つのステップ)

WordPressのセキュリティに関して言えば、CAPTCHAの追加は、ボットによるサイト侵入をより困難にする最もシンプルな方法の1つであり、実装も簡単です。簡単な3つの手順で設定できます。

ステップ1:WordPress CAPTCHAプラグインをインストール&有効化する

WordPressサイトにCAPTCHAを追加する最も簡単な方法は、プラグインでしょう。WordPressプラグインディレクトリには、すでに多くの質の高い選択肢が並んでいるため、サイトのセキュリティを強化するために身銭を切る必要はありません。

ただし、プラグインを選択する前に、考慮すべき大事な機能を確認しておきましょう。

最初に、プラグインに搭載されているCAPTCHAの種類を把握することが重要です。繰り返しになりますが、訪問者に画像をクリックさせたり、歪んだテキストを読ませたりするよりも、Google reCAPTCHAを使う方が、はるかにユーザーフレンドリーです。

さらに、プラグインがログインページだけでなく、サイトの複数の領域にCAPTCHAを追加できるようにする必要があります。この点については、ステップ3で詳しく説明します。現段階では「サイトにあるフォームについては例外なく、CAPTCHAを適用してボットを抑止すべき」と理解しておいてください。

上記の条件を満たす3つのプラグインを見てみましょう。 Google Captcha(reCAPTCHA)by BestWebSoft は、200,000を超えるアクティブインストールを記録する最も人気のオプションです。

プラグイン「Google Captcha」
プラグイン「Google Captcha」

その名から分かるように、このプラグインを使えば、ログイン/登録ページ、パスワードのリセット、お問い合わせフォーム、サイトのコメント、レビュー投稿画面に、v2またはv3のGoogle reCAPTCHAを組み込むことができます。セキュリティを向上しながら、スパムの侵入を防ぐのにも効果的です。

Advanced noCaptcha & Invisible Captchaも高評価で、上と同様の機能が多く搭載されています。

プラグイン「Advanced noCaptcha」
プラグイン「Advanced noCaptcha」

このプラグインにはマルチサイト互換性もあり、bbPressBuddyPressなどの有名どころのメンバーシップツールと統合可能です。さらに、必要に応じて、1つのページに対して複数のCAPTCHAを追加することもできます。

そして3つ目の選択肢が、Login No CAPTCHA reCAPTCHAです。

プラグイン「Login No CAPTCHA reCAPTCHA」
プラグイン「Login No CAPTCHA reCAPTCHA」

このプラグインには、シンプルなGoogle reCAPTCHAが搭載されており、ログイン、登録、パスワード復帰のフォームで使用できます。ただし、コメントセクションやお問い合わせフォームとは統合できないため、他の2つのプラグインよりも少し機能が制限されています。

ステップ2:自分用のGoogle reCAPTCHAを作成してサイトに追加する

プラグインをインストールして有効化したら、あなたの使用するGoogle reCAPTCHAを作成(当然ながら、この機能を使用するプラグインを選択した場合)する必要があります。Google reCAPTCHA管理コンソールに移動して、登録フォームに必要事項を入力します。

reCAPTCHA登録ページ
reCAPTCHA登録ページ

v2またはv3からreCAPTCHAを選択でき、チェックボックスまたは非表示のテストが使用できます。後者の方がユーザー側でのアクションを必要としないため、ユーザーエクスペリエンスが高いでしょう。ただし、v2のチェックボックスはより信頼性が高い傾向にあります。

すべてのフィールドに必要事項を入力したら、「送信」ボタンをクリックします。次の画面で、「サイトキー」と「シークレットキー」が表示されます。

reCAPTCHAのサイトキーとシークレットキーの取得
reCAPTCHAのサイトキーとシークレットキーの取得

WordPressサイトのCAPTCHAプラグインにある設定画面から、この両方を入力します。細かな流れは、選択したプラグインによって若干異なる場合があります。ただし、大きな違いはなく、WordPressダッシュボードのサイドバーから設定画面を見つけて、それぞれのキーを関連するフィールドに貼り付けましょう。

Google reCAPTCHAキーをGoogle Captchaプラグインの設定画面に追加
Google reCAPTCHAキーをGoogle Captchaプラグインの設定画面に追加

変更内容の保存をお忘れなく。Google reCAPTCHA管理コンソールページをブックマークして、定期的に確認するのがお勧めです。十分な量のトラフィックがサイトを訪問した後、フォーム送信リクエストに関する貴重な分析データが確認できるようになります。

ステップ3:設定を調整して脆弱なエリアを保護する

前述のように、サイトのセキュリティを最大限に高めるために、大事なエリアにCAPTCHAを組み込むようにしましょう。好みのプラグインをインストールしたら、すべての重要なページが対象となるように設定してください。

Google CAPTCHAとAdvanced No Captchaの両方の一般設定には、チェックボックスのリストが表示されます。ここから、reCAPTCHAを使用する場所を選択してください。

Google reCAPTCHAが表示される場所を選択する
Google reCAPTCHAが表示される場所を選択する

理想的には、次のような、脆弱性が考えられる、サイト上のすべてのフォームを対象にして保護すべきです。

  • WordPress管理画面ログインページ
  • WooCommerceログインページ
  • ユーザー登録フォーム
  • パスワード復帰フォーム
  • お問い合わせフォーム

サイトには、ユーザー作成コンテンツの送信、アンケート、メーリングリストの購読など、その他のフォームが設けられている可能性も考えられます。そのような場合には、Advanced noCaptcha & Invisible Captchaをお勧めします。このプラグインには、アクションフック機能があり、Google reCAPTCHAをどんなフォームにでも組み込めます。

または、代わりにGoogle Captcha (reCAPTCHA) Proに投資することもできます。これは、JetpackMailChimp for WordPress、複数のフォームビルダーといったプラグインとの統合にも対応しています。

ログインページにCAPTCHAを追加する

ログインページは、ブルートフォース攻撃、クロスサイトスクリプティング(XSS)攻撃に狙われます。

Google Captchaプラグインを使用してCAPTCHAを追加するには、Google Captcha >Settings>General>Enable reCAPTCHA for」を有効にし、「WordPress Default」の「ログインフォーム」を選択します。

Google Captchaプラグインのログインフォームオプション
Google Captchaプラグインのログインフォームオプション

これでログインページが保護されます。

パスワードリセットページにCAPTCHAを追加する

サイトログインが失敗すると、パスワードをリセットできるページへと誘導されることがあります。CAPTCHAを追加してこのページを保護するには、Google Captcha >「Settings」>「General」>「Enable reCAPTCHA for」から、WordPressダッシュボードを対象範囲に含めます。

Google Captchaプラグインのパスワードリセットフォームオプション
Google Captchaプラグインのパスワードリセットフォームオプション

そして「WordPress Default」にある「パスワード・リセット・フォーム」を選択します。

CAPTCHAを使用してWooCommerceログインページを保護する

WooCommerceのログインページは、WordPressページと同様に攻撃を受けやすい傾向にあります。Google Captchaでこれを保護するには、プラグインのプレミアムバージョンが必要です(下の画像の黄色の部分)。準備ができたら、WordPressダッシュボードから「Google Captcha」>「Settings」> 「General」> 「Enable reCAPTCHA for」に移動します。

(有料版)WooCommerceログインフォームオプション
(有料版)WooCommerceログインフォームオプション

ここで「External Plugins」の中から「WooCommerce Login form」を選択してください。

お問い合わせフォームにCAPTCHAを追加する

お問い合わせフォームにも、この記事で説明した他のフォームと同じ方法で、CAPTCHAによる保護を追加できます。また、Google CAPTCHAと統合できるコンタクトフォームプラグインもあります。

お問い合わせフォームにCAPTCHAを追加するには、サイトで上記のツールのいずれかを有効にする必要があります。次に、「Google Captcha」>「Settings」> 「General」> 「Enable reCAPTCHA for」へと移動し、希望のプラグインのチェックボックスをクリックしてください。

Captchaプラグインの無料および有料のお問い合わせフォームオプション
Captchaプラグインの無料および有料のお問い合わせフォームオプション

これでプロセスは完了です。WordPressサイトですでに別のお問い合わせフォームプラグインを使用している場合は、それと統合できる別のCAPTCHAプラグインを検討してもいいでしょう。ちなみにWPFormsなど、CAPTCHAを独自に組み込んでいるフォームビルダープラグインもあります。

まとめ

コンテンツ、ユーザー、ブランドの評判…これら全てを守るために、悪意のあるボットをサイトに寄せ付けないことが重要です。そして、サイト保護の手段として効果的なのが、WordPressサイトのフォームにCAPTCHAを追加することです。

WordPressサイトへのCAPTCHAの追加は、わずか3つの手順で完了します。

  1. WordPress CAPTCHAプラグインをインストール、有効化する
  2. Google reCAPTCHAを作成し、サイトに追加する
  3. 設定して、重要なエリアに保護を適用する

CAPTCHAについて、またはWordPressでこれを使用する方法について、何かご質問はございますか? コメントでおしらせください!

Matteo Duò Kinsta

Head of Content at Kinsta and Content Marketing Consultant for WordPress plugin developers. Connect with Matteo on Twitter.