Question2AnswerへreCAPTCHAを導入する方法


投稿日:2017年9月7日
  • 0
  • 0


Question2Answerを通してreCAPTCHA仕組みと使い方を解説

私が管理するSUKEGRAというサイトではQuestion2AnswerというオープンソースのQ&Aソフト利用して運営しています。

日本ではあまり馴染みのないQuestion2Answerですが、海外ではさまざまなQ&Aサイトに利用されています。
人気なだけあってスパムも多く、対策をしないと大変なことになります。

このページではQuestion2Answerへの導入方法と、合わせてreCAPTCHAについても解説します。


reCAPTCHAとは

reCAPTCHA(リキャプチャ)とは何かについて解説します。

まずCAPTCHA(キャプチャ)とは、相手がコンピュータでないことを確認するための仕組みです。
スパム対策に用いられ、難読化した文字を入力したり、簡単な計算をさせたりと、さまざまな方法がとられます。

reCAPTCHAにはもう一つの機能があります。

書籍の文字を自動で電子化するOCRというソフトがあります。
OCRソフトは万能ではなく、読みにくく加工された文字や、スキャン時に曲がってしまったりと、正確に文字が読み取れないことがあります。

この「OCRで読みにくい文字」を「難読化した文字を解析する」という作業に利用したのがreCAPTCHAです。

reCAPTCHAを利用することで、OCRソフトを補完し、同時にスパム対策にもなるというWin-Winの関係です。

ただ、解読用のAIの発達により、99.8%の文字が解読されてしまいます。そこで意図的に文字を歪めており、人間であっても認識できないレベルにまで難読化が進んでいます。
ほとんどの文字が解読されて、人間すら認識できない」となると、本来の用途であるスパム対策としては用をなしていません。

そこで現在では類似する概念の画像を選択させる(標識の画像を全て選ぶ)など、より高度な処理で人間を認識しています。

ちなみに現在reCAPTCHAはGoogleが買収して管理しています。


reCAPTCHAの登録

まずはreCAPTCHAの登録を済ませます。

以下のURLで登録ができます。
https://www.google.com/recaptcha/admin#list

既に登録しているURLがあれば、上にリスト表示されます。
新規に登録する場合は「Register a new site」という項目に必要事項を入力します。

1.Label(識別するための名前)

1つのサイトで異なるタイプのreCAPTCHAを利用しないのであれば、URLで問題ないと思います。
例)example.com

Choose the type of reCAPTCHA(reCAPTCHAのタイプ)

通常reCAPTCHA V2で問題ないと思います。それぞれ以下のような特徴を持っています。

reCAPTCHA V2

ロボットではありません」というチェックボックスにチェックを入れてもらうタイプ。複数回使用すると人間にしか識別できない画像を選択するポップアップが出てきます。
スパム対策としては最も強度が高いですが、画像を選択するのが非常に面倒なため、1人で何度も実行するようなものには向いていません。通常であれば1度だけ利用するような、例えばユーザー登録などに設置するのに向いています。

invisible reCaptcha

チェックボックスや画像認証を行わずに、バックグラウンドで人間かどうかを判断する仕組み。どこからアクセスして、表示から何秒でクリックしたかなど、複合的な要素で判断します。ユーザーによるアクションを必要としないため、入力時のストレスが一切ありません。
ただし2017年3月に正式リリースされたばかりの技術のため、どれくらいの精度があるのかは不明です。

reCAPTCHA Android

Android端末の情報を利用して認証する方法です。

Domains(reCAPTCHAを利用するドメイン)

例)example.com

あとはAccept the reCAPTCHA Terms of Service.と、Choose the type of reCAPTCHAにチェック。

Registerボタン」で登録が完了です。


Question2Answerで設定する

必要なのは「Adding reCAPTCHA to your site」という項目にある、「Site key」と「Secret key」です。

続いてQuestion2Answerの設定画面で、管理からプラグインを選択。
reCAPTCHA v2.0のオプションをクリックします。

reCAPTCHA public keySite keyreCAPTCHA private keySecret keyを入力します。
入力できたら「Save Changes」でオプションを設定します。

迷惑設定

Question2Answerで、管理から迷惑設定を開きreCAPTCHAを有効にする項目を選択します。
例えば以下のような項目。

  • キャプチャ表示 – ユーザー登録:
  • キャプチャ表示 – パスワードリセット:
  • キャプチャ表示 – 匿名投稿:
  • キャプチャ表示 – 問い合わせ:

通常であればこれで設定完了ですが。
日本語版のQuestion2Answerでは翻訳が多少古いようで、「表示されている2つの単語を続けて入力してください。」と表示されてしまいます。
そこでQuestion2Answerのディレクトリにある「qa-lang\ja\qa-lang-misc.php」を開いて翻訳ファイルを編集します。

'captcha_label' => '表示されている2つの単語を続けて入力してください。:',

上の項目を

'captcha_label' => 'スパム対策です。チェックをお願いします:',

このように変更します。(文言はreCAPTCHAのタイプによって適宜、変更してください。)

すると迷惑設定で設定した項目を入力時にreCAPTCHA ウィジェットが表示されます。

以上でreCAPTCHAをQuestion2Answerへ導入することができました。


現在のページを共有する



現在のページに関連する記事

Question2AnswerへreCAPTCHAを導入する方法 Question2Answerを1.6.1から1.7.4へアップデートする方法
Question2AnswerへreCAPTCHAを導入する方法 exeに特定のアプリケーションを関連付けた場合の対処法
Question2AnswerへreCAPTCHAを導入する方法 「人気ブログの作り方」もう色で悩まない!人気ブログから学ぶ色彩のテクニック
Question2AnswerへreCAPTCHAを導入する方法 URLを正規化して、Googleにページの重要度を伝える方法
Question2AnswerへreCAPTCHAを導入する方法 アマゾンで人気の防犯カメラ「SV3C」の設定方法を解説
Question2AnswerへreCAPTCHAを導入する方法 新しいGoogleマップ「Google Maps Platformの使い方」まとめ
Question2AnswerへreCAPTCHAを導入する方法 LaravelでOAuthを利用してTwitter、Facebook、Googleアカウントでログインを実装

おすすめの記事

ads.txtの設置方法を通して学ぶインターネット広告の問題点

ads.txtの設置方法を通して学ぶインターネット広告の問題点

サーバリソースをリアルタイムに監視するdstatのインストールと使い方

サーバリソースをリアルタイムに監視するdstatのインストールと…

Question2AnswerへreCAPTCHAを導入する方法

Question2AnswerへreCAPTCHAを導入する方法

5段階評価プラグインを通して学ぶPukiWikiのプラグインを作成する方法

5段階評価プラグインを通して学ぶPukiWikiのプラグインを作成す…

lazysizesの使い方を通して学ぶ、画像の遅延読み込みとレスポンシブイメージの基本

lazysizesの使い方を通して学ぶ、画像の遅延読み込みとレスポン…

UWSCでEXCELの作業を自動化する方法

UWSCでEXCELの作業を自動化する方法

Linuxでサーバを構築するに当たって必要になる基礎知識

Linuxでサーバを構築するに当たって必要になる基礎知識

ユーザーの環境変数を設定するbashの設定ファイルと、カスタムプロンプトについて

ユーザーの環境変数を設定するbashの設定ファイルと、カスタム…


コメントを残す

コメントは認証制のため、すぐには反映されません。

プログラミングに関する質問は「日本語でプログラミングの悩みを解決するQ&Aサイト sukegra」をご利用ください。