ここ数日でメールアドレスを画像表示しているサイトを立て続けに見つけたので、昔書いた文章をちょっと手直しして再掲、と。(ネタ切れした訳じゃないですよ)(ないですよ?)
最近では一人の人が複数のメールアドレスを所持しているのなんて当たり前のことなのだけども、ちょっと僕が普段使いしているメールアドレスを整理してみたら大変な数になっていたのに気が付いた。
ざっと列挙しよう。
・プロバイダのメールアドレスが2つ(so-netと地元ケーブルテレビ)
・携帯電話のメールアドレス
・会社のメールアドレス
・出先機関のメールアドレス
・迎賓館裏口のアドレス
・gmail(使ってみる? って聞かれたから勢いで)
・hotmail(MSN Messengerを使ってるから)
メールそのものの送受信に普段使いしているのは3つほどだけど、それにしてもまあよくもこんなにアカウント持ってるもんだ。自分で驚いた。
(皆さんは幾つぐらい持ってます?)
さて、この中で一番古くから使っているのはso-netのアドレスなのだけど、これに届くスパムがまあ多いこと多いこと多いこと。まったくもってうんざりする。
僕に限らず大量のスパムが届くことにうんざりしている人は多いらしく、最近ちょこちょこ見かけるのが「メールアドレスを画像にして表示」してるWebサイトだ。
スパムボットなどのプログラムはHTMLの中に書かれた文字を読むことはできても画像として表示されている文字列を読みとるのは困難、と云う性質を使ったなかなか巧い方法だ。
あ、ちなみにスパムボットと云うのは、インターネットを自動巡回してWebサイトの中に記述してあるメールアドレスを集める感じの悪いプログラムのことです。
俗にCaptcha(日本語だと画像認証)と呼ばれる認証方式もこの「画像でメールアドレスを表示」と同じ考えで、こちらはブログのコメント欄にコメントを書く時やフリーメールを取るときの最終確認なんかでよく使われる。
画像に記入されているアルファベットを入力して下さい、と云うアレだ。
ただ、この画像を使う手法にはひとつ大きな欠点があって、それは視覚に障害を持つ人がこの認証を通過できないと云うところ。
Hotmailでは音声認証と併用してこの障害を取り除いているけど、個人で同じ方式を使うのはちょっと手間だ。
つまり一言でくくると、画像でメールアドレスを表示するのは名案だけど、ちょっとばかりケチがついている方法だと云うことになる。
さあ困った。スパムは減らしたいけど、画像を使うと敷居の高くなる層がいる。
じゃあどうしよう?
僕が代案として提示したいのが、メールアドレスを実体参照(エンティティコード)で書く方法だ。
この難しそうな言葉についての詳しい理屈はWikipediaの説明をリンクしておくとして、つまりは「スパムボットから見つかりにくく、ブラウザではちゃんと表示される方法でメールアドレスを書いておこう」と、こう云うことだ。
そこでご紹介するのがこちら、HTMLエンティティ化のページ~!(例の青い猫がポケットから道具を出す時の声で)
メールアドレスへのリンクは普通 mailto:hoge@hoge.com のようにHTMLの中に書くんだけど、大抵のスパムボットはmailtoタグと@をメールアドレスを見つけるフラグとして使っている。
なので、この部分、もしくはタグを含むメールアドレス全文をこのページから実体参照に変換して、元ページのアドレスと交換しちゃう。
例えば迎賓館裏口のメールアドレスを10進/16進のランダム混合でエンティティ化すると、
info@
backe
ntran
ce.net
のようになる。
これをそのままソースに張り付けると、
info@backentrance.net
はい、この通り。
ほかに、ランキングサイトで使われているタグにもメールアドレスが含まれている事が多い。
例えばReadMe! JAPANならこんな感じ。
<A HREF="http://readmej.com/"><IMG SRC="http://readmej.com/readme_epik_tw.cgi?サイトのメールアドレス" WIDTH=37 HEIGHT=10 BORDER=0></A>
これもスパムボットにとって格好の餌食だからメールアドレス部分は変換しておきたいところ。
メールアドレスを画像表示やエンティティ化してるのにReadmeのタグがそのままと云うのではせっかくの対策も効果が薄くなってしまう。(そして案外見落としがち)
今まで生アドレスのまま表示しててスパムに苦しんでいた人や、画像認証の穴に気が付いていて導入できないで居た人などはちょっとお試しいただきたい。
ところで、エンティティ化した文字列は、視覚に障害を抱えた人が使用するブラウザで正しく読み込まれるのだろうか。
これも2本ほど検証してみた。
結論から云うと、これはソフトによって読めたり読めなかったりするようだ。
ブラウザとしてIEエンジンやGeckoエンジンを使っているソフトなら問題ないみたいだけど、HTMLファイルを独自に整形するタイプのテキストブラウザだと、対応になっていない場合があるようだ。
けど、このあたりはもうサイトの作り手側の問題ではなく、ソフトウェア開発をする側にユーザが期待していく種類のことだろう。
最後に。
これはある程度予想できている事なんだけど、HTMLエンティティによるメールアドレス表記が主流になると、たぶんスパムボットはエンティティを解析する機能を身につける。
エンティティ化は一時しのぎと云うか、対症療法の域を出ないのだ。
程度の差はあれ、画像認証もそうだ。
これはとても根本的な問題で、機械やソフトは使用者の目的の善悪を判断できない。
スパムボットを除けて視覚障害ユーザは除けない完璧な方法なんてありはしないのだ。
いたちごっこと云えばそれまでだけど、とりあえずその場その場で依りよい選択を重ねていくことは無駄ではないと思いたいものだ。