© 2007-2024, Kyu-hachi TABATA Last updated  2022/01/01

少し高度な技 (1) ロボット対策(メールアド レスの隠し方)

Robot■1.ロボットとは

ロボット Robot (別名: Bot, Crawler, Spider)は、ネットを自動巡回して、特定のデータ収集をする働きをするソフトウェアです。(右のアニ メーション GIF はE-Art Japan のものです)

検索サイトなどでは、常にさまざまな Robotを使って世界中のネット情報を集めているわけですが、メールアドレスを収拾することにも使われています。Web黎明期では、自分の連絡先(メー ルアドレスや電話番号)を明らかにすることが普通でしたが、Robotの登場で、メールアドレスなどを収拾されると、スパムメールが大量に送 られてくるような事態が起こるようになりました。

このため、2000年ごろから、メールアドレスなどはなるべく出さない、出すとしても少し工 夫が必要になってきました。


■2.メールアドレス表示の工夫

比較的簡単にできる工夫としては、

(1) @ (アットマーク)の代わりに別な文字を入れておいて、読み替えてもらう
(2) 改行などをいれて、分かち書きにする
(3) 全角表示にする

などがありますが、それ以外の方法3つを順に紹介します。


■3.Java Script で隠す方法

1. 下記のような内容のテキストファイルを作り、mail.js などの名前で、htmlファイルと同じディレクトリに保存します。拡張子 .js (= java script の意味)を付けるのが大事。
str="管理者(お茶の水)まで";
document.write(str.link("mailto:*****@***.***.jp"));
2. htmlには次のようなタグを埋め込みます。

<script src="mail.js"></script>

3.これをブラウザで見ると「管理者(お茶の水)まで」と表示され、そこをクリックすれば新規メールウインドウが開きます。この方法は完璧で はありません が、ロボット検索による収集を免れる確率は高いと思います。

例: メールは

(注:このメールアドレスは例示のための架空のものです)


なお、読み手側はブラウザの設定で Java Script を有効にしていないとメールアドレスが表示されません。上の例で 「メールは」までしか表示されないときは 
Java Script が無効になっています。


■4.画像を使う方法

1. ****@***.***.jp をテキストエディタなどに打ち込み、それをスクリーンコピーします。
2. フォトショップなどで新規画像を作成し、そこにペーストします。上記のメールアドレス部分だけにトリミングして、jpg画像などとして保存。
3. html に上記の画像を貼り付けます。リンクはしません。
4. 画像ファイルの扱いが面倒でなければ、こちらの方をおすすめします。ほぼ完璧な防御方法ですし、読み手が
Java Script を無効にしてい ても表示されるからです。 表示はされているけれど、それはテキスト情報でなく画像情報なのがミソで、ロボット検索から免れることができるわ けです。
例: メールアドレスはこちら: 
   
(注:このメールアドレスは例示のための架空のものです)


■5.部分的にコード化する方法

1. 隠したいテキスト文字をエンティティ・コードで表記しておく方法です。

例えば、 アットマー ク(@)が含まれる文字列はメールアドレスである可能性が高いので、ロボットは、これを目印にしてメールアドレスを集めているはずです。そこで、このアッ ト マー ク を &#64;などとアスキーコードで表記する(=エンティ ティ 表記)ことで、 収集の手から免れられます。ソースレベルではコードでも、ブラウザ表示の上ではきちんと文字 になるので、閲覧するときにはコード表示が障害にはなりません。
【エンティティ (entity) 表記】

普通にHTMLに記述しただけではWebブラウザに表示されない文字を表現するための方法で、その基本は、
“&” + 略号 + “;”
“&#” + 10進のアスキーコード + “;”
“&#x” + 16進のアスキーコード + “;”
と いう書式です。略号やアスキーコードは、文字について (1) ASCIIコード に一覧があります。また、エンティティ表記については、文 字について (2) エンティティ表記もご覧ください。

事例は下表のとおり。


種類
表記例  (エンティティ → ウェブ)
タグに使われている記号
(上が記号、中が10進、下が16進の例)
“&lt;” →“<”
“&#60;” → “<”
“&#x3C;” → “<”
キーボードから入力できない欧文 文字
(上が10進、下が16進の例)
“&#225;“→ “á
“&#xE1;“ → “á
普通の英文文字
(上が10進、下が16進の例)
“&#109;&#97;& #100;&#111;”  → ”mado”
“&#x6D;&#x61;&#x64;&#x6F;”  →”mado”
2. 16進表記の場合は、%を使う方法がありますが、タグの中だけに限る表記法です(なお、URL  などで2バイト文字を表記する際にこれが使われることがあります)。

3. 記号をつかった表記、アスキー10進、アスキー16進などの表記をランダムに組み合わせることができます。メールアドレスを構成す る文字のうちのいくつか(または全部)をエンティティ化すると隠蔽効果が上が ります。

4. エンティティ表記を、■1で説明した JAVAスクリプトを使う手法でのメールアドレス部に使うという「あわせ技」もあります。

5. 例としては、普通に作成したhtml文書を一旦、保存した後、エディタやメモ帳などで再び開いて、文中に使われているメールアドレス、例えば、 ****@***.****.jp を ****&H64***.****.jpなどと書き換えます。なお、こうした変換作業を半自動的にやってくれるソフトがあります。興味のある方は こちらへ

例: メールアドレスは こちら

(注:このメールアドレスは例示のための架空のものです)

付 記: もともと、robot 対策とは、SEO対策のひとつであり、セキュリティ保全などの理由から、自動巡回 ソフトウェアをブロックする方法をいいます。具体的には、robots.txt というコマンドファイルを設置したり、<meta name="robots" content="noindex,nofollow"> というメタコマンドをヘッダに記述します(くわしくは、こ ちら)。ただし、こうした方法が通用するのは、あくまでも”紳士的な” robot の時だけで、結局は上記のような方法で対応するしかないようです。

とびら へ 前へ 次へ
↑ トップへ