これらの被害を最小限にくい止めるには、どうすればよいでしょうか?
私が考えられる選択肢を以下4つを挙げて見ました。
- 公開用のメールアドレスを別途用意する
- メッセージ送信CGIを活用する
- メールアドレスを画像で掲載する
- 「@」マークを使わずにメールアドレスを記述する
迷惑メールが届くのは困るものの、やはりアクセス者とのコミュニケーションも取りたいからメールアドレスの公開は避けられない… という場合は、公開用のメールアドレスを別途取得すると良いでしょう。無料で利用できるウェブメールや転送メール(ヤフーメール等)を活用すれば、追加費用は¥0円で済みます。公開用のメールアドレスなら、被害が多くなってきたときには、バッサリ気軽に切り捨てることができます。
親しくなったネット友達には、本来のメールアドレスを教えておけば、公開用メールアドレスを切り捨てても、連絡が取れなくなることはありません。
公開用メールアドレスでは、結局迷惑メールが届くことに変わりはありません。届くことそのものをなるべく避けたい場合は、「メールアドレスを公開せずにメッセージを受け取る」手段が必要ですね。
そういう場合には、メッセージ送信にCGIやPHPっと言ったスクリプトを活用すると良いでしょう。メッセージ送信CGIには、フリーで公開されているものも多くありますのでご利用して見るのも手ですね。
CGIやPHPスクリプトはメールアドレスをスクリプト上に書き込んでいるのでWEBサーバーの設定ミスがない限りスクリプトの中を見ること出来ませんのでメールアドレスを収集されるこはできません。
CGIの設置ができない場合は、レンタルCGIを利用するという手もあります。その場合、CGI設置に関する知識は不要なので、誰でも簡単に利用できます。
実際に私のところはCGIでメールを送信させています。→ アペルトウェーブのお問い合わせメール
aspスクリプトを利用した場合はこちらになります。→ アペルトウェーブのお問い合わせメール
公開用メールアドレスを別途取得するのも面倒だし、CGIを設置するのもしんどいし判らない… という場合は、とりあえず、メールアドレスをテキストで掲載するのをやめて、画像で掲載してみましょう。
例えば、以下のように作成します。(以下は架空のアドレスです)

のように入力等の面倒をかけますが、とりあえず、ソフトウェア(収集業者からのツールやウイルスなど)によるメールアドレスの自動収集は防ぐことができるでしょう。
他にメールアドレスの「@」だけを画像にするっと言うのも良いかも知れませんね。
※打ち間違いを防ぐため、判別しやすいフォントを使って、文字サイズを大きくして見やすいようにしておきましょう。
メールアドレスには、必ず「@」(アットマーク)が含まれていますから、HTMLソース中にある「@」の前後はメールアドレスである可能性が高いと推測できるというわけで、メールアドレスを収集するプログラムは、HTMLファイル中から「@」を探すように作られております。
※他には、リンク先URLに「mailto:」という文字列が記述されている部分を探すなどの方法もあると思いますが、記述されているメールアドレスが必ずしもリンクとして記述されているとは限らないので、やはり「@」を探す方が確実なような気がします。
そこで、HTMLには、「@」を使わずに「@」を表現する方法があります。
それを使えば、少なくとも、HTMLソース中に「@」を記述することなく、メールアドレスを記述できるようになります。
従って、「@」という文字を探してその前後をメールアドレスとして抜き出すようなプログラムには、メールアドレスを収集されずに済むわけですね。
その方法としては、数値を文字参照にしてしまう方法です。
実は、「 @ 」という記号は、HTMLでは「 @ 」という十進数(十六進数では「 @ 」 アンド・シャープ・小文字エックス・40・セミコロンの6文字※)からの記述で代用が可能なのです。「アンド・シャープ・64・セミコロン」の5文字※です。
※すべて半角で記述します。
このように、文字を数値で代用して記述する方法を「数値文字参照」と呼びます。主に、キーボードから入力しようのない特殊な文字(「©」、「¿」、「∞」、「²」、「♥」など)を入力する際に活用される「実体参照」ですが、何も特殊な文字だけでなく、キーボードから入力可能な一般的な文字の表現にも使えます。例えば、「 a 」という文字は「 a 」とHTMLソース中に記述しても表示させることができます。
同様に、「 @ 」は、「 @ 」で代用できますのでね。
※アルファベットと数字を下記表にて記述しました。
つまり、このメールアドレスは、
「 abcde-xxxxxx@aperuto.com 」が、
「 abcde-xxxxxx@aperuto.com 」
…にアットマーク部分を記述できるわけです。
※架空のメールアドレスです。
こうすれば、少なくとも、「 @ 」という記号はソース中に現れません。
※ブラウザ上で見ると「 @ 」という記号に見えます。それは、ブラウザが数値文字参照を解釈して、記号に変換してから表示しているからです。
「 @ 」以外も全部数値文字参照で記述しようと思えば、メールアドレス全体を数値化で表現できますので下記の表(十進数)を参考にして見てください。
|
残念ながら、これで100%防げるわけではありませんので悪しからず。
やはり、収集ソフトウェア側も賢くなっていくわけで、実体参照を用いて記述されていても、ちゃんと解釈して収集していくものもあるようです。
しかし、被害(の可能性)は少なければ少ないほど良いですから、古い収集ソフトウェアからだけでも、防げるなら防いでおいた方が良いでしょう。
※もちろん、古い収集ソフトウェアがみな実体参照を解釈しないとは限りません。逆に、新しい収集ソフトウェアでも実体参照を解釈しないものもあるかも知れません。