pict-recaptcha.pngreCAPTCHAのもうひとつの機能としてreCAPTCHA Mailhideというものがあります。これは文字通り、メールアドレスをスパム攻撃から防ぐために隠すものです。

reCAPTCHA Mailhideとは?

説明するより実際にサンプルを見てもらったほうが早いと思います。

質問はメールで askmequestions@example.com までどうぞ。


このメールアドレスはサンプルですので実際には存在しません。askmequestions@example.com(@は実際には半角文字)というアドレスがこのように一部リンク付きの「...」で置き換えられているのがわかるでしょうか?このメールアドレスを知りたい場合には、この「...」のリンク部をクリックします。

すると以下のようなダイアログが表示されます。

ss-mailhide-3.png
ここで2つの単語を正しく入力するとダイアログの表示が以下のように変わり本当のメールアドレスを知ることができます。

ss-mailhide-4.png
これにより、Webサイトを自動で巡回し、サイト中に記述されるメールアドレスをピックアップしてそこにスパムを送りつけるようなプログラムがメールアドレスを知ることが非常に困難になります。

reCAPTCHA Mailhideのインストール

reCAPTCHA MailhideモジュールはreCAPTCHAモジュールとは別のモジュールとなっていますので、使用する場合にはDrupalのモジュール管理画面でまずreCAPTCHA Mailhideモジュールを有効にします。(reCAPTCHAをまだインストールしていない場合にはまずインストールしてください。詳細は前ページを参照ください)

reCAPTCHA Mailhideを使う場合に必須になるのがPHPのmcryptモジュールです。メールアドレスを暗号化して送受信しますのでこれがインストールされていないとMailhideは使うことができません。mcryptモジュールがインストールされているかどうかは以下の方法で調べることができます。
  1. サーバーにsshなどでログインできる場合
    この場合にはシェルからphp -mを実行するとインストールされているphpのモジュール一覧が表示されますので、ここにmcryptがあればOKです。
  2. それ以外の場合
    この場合は以下のファイルを作成し、ftpでHTMLディレクトリに設定し、これをブラウザから実行します
    1. <?php
    2.   phpinfo();
    3. ?>
    これでブラウザにインストールされているPHPの情報が表示されますのでmcryptモジュールがインストールされているか調べることができます。

PHPを自分でソースからビルドしている場合で、mcryptモジュールを組み込んでいない場合には、まずlibmcryptをインストールして、その後、PHPを--with-mcrypt(=DIR)をconfigureオプションに追加してビルドしなおせばOKです。PHPをビルドし直した場合には、Apacheサーバを再起動するのを忘れないようにしてください。

Sourceforge.netのlibmcryptのダウンロードページ
http://sourceforge.net/project/showfiles.php?group_id=87941

さて、話しをreCAPTCHA Mailhideモジュールに戻します。reCAPTCHA Mailhideモジュールを使う場合には、reCAPTCHAモジュールとは別途にMailhide用の暗号鍵のキーペアが必要になります。これはreCAPTCHAサイトのMailhideモジュールのページから無料で入手できます。

reCAPTCHA Mailhide (ここからGet an API Keyリンクを選択)
http://mailhide.recaptcha.net/

reCAPTCHA Mailhide APIキーの入手ページ
http://mailhide.recaptcha.net/apikey

次に、以下の手順でreCAPTCHA Mailhideを使うのに必要な設定をおこないます。

  1. サイト環境設定>入力書式ページで管理者が通常使う入力書式の「設定」を選択して、リストからreCAPCHA Mailhideフィルターを有効にします。サイトを訪れる人のコメントなどに含まれるメールアドレスも隠したい場合には、該当する入力書式についても同様のことをしてください。

  2. サイト環境設定>入力書式ページで管理者が通常使う入力書式の「設定」を選択して、並び替え(Rearrange)メニュを選択し、reCAPTCHA MailhideフィルタをURLフィルより上位にくるようにします。
    ss-mailhide-2.png
  3. サイト環境設定>入力書式ページで管理者が通常使う入力書式の「設定」を選択して、設定(Configure)メニュを選択し、reCAPTCHA Mailhideの設定セクションで先ほど入手したMailhide用のパブリックキーとプライベートキーを入力します。
    ss-mailhide-1.png

これで準備は完了です。

reCAPTCHA Mailhideを使う

reCAPTCHA Mailhideはメールアドレスを自動的に変換して隠してくれますので特に何かをしないといけないわけではありません。ただし、日本語サイトで使う場合には、メールアドレスの前後に半角のスペースや改行などを入れないと正しく動作してくれません。これは日本語のように単語の区切りがあいまいな言語ではメールアドレスの始まりと終わりがはっきりわからないからです。

また、mailto:アンカーで記述されてメールアドレスや、他のタグに囲まれている場合もうまくいきません。タグで囲む場合にもメールアドレスの前後とタグの間に半角のスペースがあればうまく変換されます。

 
No votes yet