CAPTCHA
概要
"CAPTCHA" は "Completely Automated Public Turing test to tell Computers and Humans Apart" の頭文字を取った言葉です。
"コンピューターと人間とを識別するための(チューリング)テスト"という事のようです。
Drupalにおいてはコンテンツや、コメント、コンタクトの投稿時に設問を提示して、その解答を入力させることによって、相手がコンピュータ(プログラム、スクリプト)なのか、人間(ユーザー)なのかを判別して、投稿を制御する外部拡張モジュールという位置づけになります。
captchaモジュールは、バージョン5.x-3.0で大きく変化しました。
以前まで外部モジュールとして分離されていた画像認証モジュールが同梱となりました。
また、任意の単語を複数個用意して、その中からいくつか取り出し、指定された位置の単語を入力させると言ったモジュールも同梱されました。captchaモジュール本体では単純な足し算による認証を提供しています。
大きく変わった点として、captchaを提示するフォームをデフォルト以外に設定したい場合は他のモジュールが必要でしたが、captchaモジュールの機能としてサポートされるようになりました。
CAPTCHAを管理するパーミッションを設定されたユーザーにはすべてのフォーム上(管理ページなどを除く)にCAPTCHA管理のためのリンクが表示されるようになり、そこからCAPTCHAの提示や、認証タイプの変更などが設定出来るようになりました。
認証時や認証後の動作についても設定が出来るようになり、認証を失敗したレポートをログに記録するようにもなりました(任意)。
これにより、実際にCAPTCHAモジュールがどのくらいの投稿をブロックしているかと言う状況などを把握する手段が出来たことになります。
CAPTCHAを提示した際にキャプチャの簡単な説明を出力する項目が追加され、インストールされている言語コード別に設定出来るようになりましたが、認証のための問題を設定する際にはそのような分けてある部分は存在しないのでオールマイティーで使うには難点がありそうです。
そうはいっても、同梱の画像認証モジュールやテキスト認証モジュールは日本語(マルチバイト文字)も問題なく使えるようです。
設定
- 公開先に登録されている「5.x-3.0」の「Download」から、「captcha-5.x-3.0.tar.gz」がダウンロードできます。※2007/11/08現在
- ダウンロードしたファイルを解凍します。
- 解凍して取り出された「captcha」フォルダ以下をDrupalの「sites/all/modules」にアップロードします。
- モジュール管理メニュー(管理→サイトの構築→モジュール)にて「Spam control」グループに表示されている「CAPTCHA」にチェックを入れて「設定の保存」で有効にします
- 管理(Administer) -> ユーザー管理(User management) -> CHAPCHA 画面でCAPTCHAモジュールの設定をします。
※以前のバージョンでは管理->サイト設定 にCaptcha の設定メニューがありましたが、5.x-3.0以降、変更になっています。
- "全体の設定"タブの内容を設定します。
- フォーム上に "CAPTCHA管理" リンクを追加
コンテンツタイプ毎のコンテンツの投稿フォームなど、デフォルトで対応しているフォーム以外の場所にCAPTCHAを提示したい場合はこのオプションを有効にしてください。"administer CAPTCHA settings"というパーミッションを与えられているユーザーにたいして、コンテンツ編集フォームに"CAPTCHA管理"というリンクを表示します。CAPTCHAの提示はそのリンクから行います。
- フォーム毎のキャプチャ認証タイプ
デフォルトで対応しているフォームおよび、追加されたフォームの状態をまとめて管理できます。
CAPTCHAで使用する認証タイプ(使用するモジュール)および無効、フォーム情報の削除が出来ます。 - キャプチャ認証についての説明
CAPTCHAを提示しているボックスに、CAPTCHAの趣旨などの説明を表示することが出来ます。
このサイトで作成した日本語化ファイルにはこの項目の内容も記述していますが、CAPTCHAモジュールインストール後に日本語化ファイルをインポートしても項目の内容は更新されないようです。
なお、日本語化ファイルの該当部分は次のように当てています。
この問題は正しく解答を入力することで機械的なスパム投稿かどうかをテストし、スパム投稿を防止するために用意しています。 - 継続性
ユーザーが一度CAPTCHA認証を通過した後の動作を設定します。
- 常にキャプチャ認証を提示する。
CAPTCHA認証を通過した後も、フォームが開かれる毎にCAPTCHA認証を提示します。プレビュー動作の際にも再度CAPTCHA認証を要求します。プレビューが必須の設定になっている場合は最低でも2回のCAPTCHA認証を通らなくてはいけなくなりますのでセキュリティは高くなりますが、ユーザーへの負担はかなり高くなります。
- フォームに対するキャプチャ認証が正しく成功した後は、そのフォームの投稿が完結するまでキャプチャ認証を提示しない。
CAPTCHA認証を通過したフォームの投稿が完了するまでのあいだはCAPTCHAを提示しません。
- フォームに対するキャプチャ認証が正しく成功した後は、すべてのフォームでキャプチャ認証を提示しない。
CAPTCHA認証を通過した後は、ユーザーとのセッションが終了するまではCAPTCHAを提示しません。
- 常にキャプチャ認証を提示する。
CAPTCHA認証を通過した後も、フォームが開かれる毎にCAPTCHA認証を提示します。プレビュー動作の際にも再度CAPTCHA認証を要求します。プレビューが必須の設定になっている場合は最低でも2回のCAPTCHA認証を通らなくてはいけなくなりますのでセキュリティは高くなりますが、ユーザーへの負担はかなり高くなります。
- キャプチャ認証の失敗をログに記録する
CAPTCHA認証に失敗した時に、Drupalのログにレポートを記録します。
失敗が起こったフォーム(form_id)、認証タイプ、入力された内容、正しい答えなどが出力されます。
- フォーム上に "CAPTCHA管理" リンクを追加
コンテンツタイプ毎のコンテンツの投稿フォームなど、デフォルトで対応しているフォーム以外の場所にCAPTCHAを提示したい場合はこのオプションを有効にしてください。"administer CAPTCHA settings"というパーミッションを与えられているユーザーにたいして、コンテンツ編集フォームに"CAPTCHA管理"というリンクを表示します。CAPTCHAの提示はそのリンクから行います。
- サンプル
現在の設定内容による出題の一例を確認することが出来ます。
- Image CAPTCHA
画像認証をおこなうImage CAPTCHAモジュールについての設定をします。
- 文字列の設定
画像認証に使用される文字を列記します。日本語(マルチバイト文字)も使用できるようです。
- 文字数
画像認証に使用する文字数を設定します。文字数が多くなればなるほどサーバーへの負荷が高くなります。
- フォント設定
画像認証に使用するフォントを選択します。TrueTypeフォントのみ、使用できます。
フォントのアップロード先はCAPTCHAモジュール内にある ”image_captcha" フォルダの中にある "font" フォルダ内(/sites/all/modules/captcha/image_captcha/font)か、Drupalのファイルシステム内(/files)のどちらかとなります。 - フォントサイズ※この項目はフォント設定が "ビルトインフォント" 以外を選択しているときのみ表示されます。
画像に出力する文字の大きさを選択します。
- より小さい
- 小さい
- ノーマル
- 大きい
が選択できます。 - 文字間隔
画像に出力される文字と文字の間隔を指定します。
- 小さい
- ノーマル
- 大きい
が選択できます。 - 歪みとノイズ
文字の歪ませ方を選択します。
- なし
- 低い
- 中くらい
- ノーマル
- 高い
- 非常に高い
から選択します。 "なし" では歪みエフェクトはかかりません。 - 歪みの効果をなめらかにする
歪みエフェクトの輪郭処理をスムーズにします。このオプションはサーバーの負荷を高めます。
- ダブルビジョン
文字を二重化して、それぞれが接近または重なり合うように表示します。
- 塩こしょうノイズを追加
色とりどりカラフルなドット状のノイズの効果をかけます。
- 線状のノイズを追加
複数の線状のノイズを画像に載せます。
- ノイズレベル
ノイズのレベルを選択します。
- 低い
- ノーマル
- 高い
- 非常に高い
から選択します。
※画像認証はサーバーのPHPにGDライブラリがインストールされていて、なおかつjpegサポートが有効である必要があります。 - 文字列の設定
画像認証に使用される文字を列記します。日本語(マルチバイト文字)も使用できるようです。
※画像認証はサーバーへの負荷が高くなる傾向にあります。レンタルサーバーなどの場合、サーバー資源を共有している場合が多いですから、サーバーへの負荷には十分配慮して使用してください。最悪の場合、アプリケーションの実行を停止させられてしまう場合があります。
- Text CAPTCHA
単語の候補群からランダムに選んだ複数の単語を提示して、その中から指定した場所の単語を入力させる認証タイプのText CAPTCHAモジュールの設定をします。
- 出題に使う単語の候補
出題に使用する単語の候補群を指定します。
デフォルトは "無意味なランダムの文字列を作成する。" です。モジュールがランダムに作成します。
出題に使用する単語群を任意に設定したい場合は "ユーザーが定義した文字列を使う。" を選択します。 - ユーザー定義の文字列候補
"出題に使う単語の候補"項目を"ユーザーが定義した文字列を使う。"に設定した場合、ここで文字列の候補群を記述します。
単語は半角スペースで区切って1行に列記します。
列記する単語は最低でも20組必須です。※モジュールのバージョン5.x-3.0では現在必要な単語数の最低限は20組に固定されています。将来的には任意に設定出来るようになる可能性もあるようです。 - 提示される文字列の数
出題時に、候補群の中から抜き出される単語の数を指定します。4から10の間で設定出来ます。
- 出題に使う単語の候補
出題に使用する単語の候補群を指定します。
日本語化
日本語化するためにはpoファイルのインポートが必要です。
- この下の項目にある"日本語化ファイル"内のリンク先に日本語化ファイルを登録してあります。
- Drupal日本語プロジェクト | Drupalを日本語で使いやすく!で公開されている日本語プロフィール+jBoxモジュールを利用している場合はモジュールをアップロードする前にモジュールのフォルダ「captcha」内の「po」フォルダ内に、ダウンロードした日本語化ファイルを解凍して出てくる「po」フォルダ内の「ja.po」をコピーしてからアップロードしてください。モジュールを有効にした際に自動的にpoファイルがインポートされます。
※最新のjboxモジュールに同梱されている「Update Locale」を有効にしていた場合、サーバーより自動取得できます(予定)。
- 上記以外の方は、ローカライゼーションメニュー(管理→サイトの設定→ローカライゼーション)のインポートから、「ja-captcha.po」ファイルをインポートしてください。