pict-recaptcha.png reCAPTCHAはCAPTCHA同様に投稿されたデータが実際に人間の手によるものかスパムボット(スパムなどを自動的に送信するプロラム)によるものなのかを画像を使って判別するシステムです。

reCAPTCHAとは?

以下のような画像と入力欄を見たことがある人も多いかと思います。

ss-captcha-2.png CAPTCHA

ss-recaptcha-4.png reCAPTCHA


CAPTCHAではランダムに選ばれた数文字のゆがんだ画像に基づいて同じ文字を入力するものですが、reCAPTCHAでは2つの単語を入力してもらいます。

reCAPTCHAはCAPTCHAとことなりスパム防止のための画像解読を有効利用した画期的なシステムです。どこが画期的なのかと言うと、まずreCAPTCHAのサイトの説明文を抜粋します。

推測では毎日約6千万回のCAPTCHAが人間の手によって解読されています。1つのCAPTCHAの解読に平均で10秒かかるとすると、個々の消費時間はたいしたことはなくても総計すると毎日人類は16万時間(約19年)をCAPTCHAの解読に費やしていることになります。この時間とエネルギーを積極的に何かに利用できないものだろうか?reCAPTCHAはこの問題、つまりCAPTCHA解読に消費される労力を、本を読むこと(書籍のデジタル化)に利用することにで解決したのです。

この発想はすごいですね、目からうろこが落ちましたこの発想はすごいですね、目からうろこが落ちました

印刷された膨大な過去からの書物をデジタル化する場合に使われるのは光学式文字認識(OCR)技術ですが、OCR技術は完璧なものではなく書物の状態や印刷された文字の状態により正しく文字を認識できない場合も少なくはありません。下図のように人間であればより正確にわかるような場合でもOCRソフトウェアではご認識されてしまうケースが多いのです。
ss-recaptcha-2.gif
このようにOCRソフトウェアで誤認識されてしまう文字や認識不可能な文字は最終的には人間が手作業で修正していくことになりますが、この手作業により修正していく作業を世界中の人が分担作業することができるようにしたのがreCAPTCHAです。

どういうことかというと、reCAPTCHAで出題される2つの単語のうち実際にシステムが正しい解答を知っている単語は1つで、あとの1つはOCRでうまく認識できなかった未知の単語です。reCAPTCHAではシステムが正しい解答を知っている単語を正しく解答してくれた人間はもう1つの未知の単語もおそらく正しく解読してくれるだろう、という発想に基づいてこの未知の単語の正しい解読をreCAPTCHAを使う人に教えてもらうことにしたのです(注1)。これにより印刷された書物のデジタル化作業が格段に進むことになります。

(注1)ただし、reCAPTCHAを使う人が必ず未知の単語も正しく解読できる保証はないので、3人以上が同じ未知の単語について同じ解答をした場合にのみ信頼できる解答ものとして使用することにしています。


reCAPTCHAモジュールのインストール

DrupalのreCAPTCHAモジュールを使うにはCAPTCHAモジュールもインストールする必要があります。Drupal.orgよりこの2つのモジュールをダウンロードします。

CAPTCHAモジュール
http://drupal.org/project/captcha

reCAPTCHAモジュール
http://drupal.org/project/recaptcha

ダウンロードしたらモジュールをインストールして管理ページのモジュールページでこの2つのモジュールを有効にします。reCAPTCHA MailhideはWebサイトで公開するメールアドレスをスパムから守るためのものですがこれは別記事で紹介しますので、今は有効にしておいてもしなくてもどちらでもかまいません。

次にreCAPTCHA用のPHPライブラリをダウンロードしてインストールする必要があります。このライブラリはreCAPTCHAのサイトのPHPライブラリのページからリンクをだとってダウンロードすることができます。直接ダウンロードする場合は以下のGoogle Codeサイトになります。

reCAPTCHA PHPライブラリ
http://code.google.com/p/recaptcha/downloads/list?q=label:phplib-Latest

ダウンロードしたライブラリのアーカイブファイルを任意の場所で解凍し、その中にあるrecaptchalib.phpを[drupal-root]/sites/all/recaptcha/recaptchaにコピーします。最終的に[drupal-root]/sites/all/modules/recaptcha/recaptcha/recaptchalib.phpというライブラリパスが存在すればOKです。

reCAPTCHAは外部サーバーとのデータのやりとりをおこないます。この通信を暗号化する際に使用するキーをreCAPTCHAのサイトから入手する必要があります(無料)。

reCAPTCHA
http://recaptcha.net/

このサイトで無料登録をしてあなたの使用するドメイン用のキーを入手します。登録が終了すると、あなたの指定したドメイン用のパブリックキーとプライベートキーを入手することができます。

reCAPTCHAモジュールの設定

入手したキーはDrupalのreCAPTCHAの設定画面において入力してやる必要があります。reCAPTCHAの設定画面はCAPTCHAの管理ページと同じページになりますので、管理ページ>ユーザの管理>CAPTCHAへすすみ、reCAPTCHAメニュ(タブ)を選択します。ここで先程入手したパブリックキーとプライベートキーをコピペで入力します。

ss-recaptcha-3.png
次に、CAPTCHAメニュ(タブ)を選択し、reCAPTCHAを使うフォームを選択します。これでreCAPTCHAの設定は全て完了です。

ss-recaptcha-5.png
なお、CAPTCHAやreCAPTCHAは100%スパムを防いでくれるとは限りません。スパムボットもスパマーの手によって日々改良され進化していますので場合によってはスパムボットにより解読できてしまう場合もあるからです。他のスパム対策と組み合わせて使用することをおすすめします。

参考ページ
http://drupal.org/node/151588

 
No votes yet