メールアドレス収集ロボットの邪魔をする?

2008-01-27 06:10

自分のメールアカウントにやってくるスパムを防ぐわけではありませんが、スパム送信者を牽制する意味合いで、自分のサイトにわざと滅茶苦茶な文字列でつくったメールアドレスを掲示している人もいます。やり方としては、以下のようなコードをローカルで動かし、ブログの静的ページや記事として貼り付けるわけです。下記のコードでは、メールアカウント部分を32文字の疑似ランダムな文字列でつくり、ドメイン名部分を16文字の小文字ローマ字と数字、それからハイフンを含む文字列にしています。最後に、1~10のサイコロを振って、数字に対応するトップレベルドメインを設定します。そうして出来上がったダミー文字列のメールアドレスを10万個だけ生成します。これをブログ記事の投稿画面(HTML編集モードの画面)に貼り付けると、ロボットを攪乱するページができあがるというわけです。あ、ドメインの先頭にハイフンが来るパターンを除外しないといけませんね。まぁいいや。

<?php

$totalChar = 32;
$totalDomain = 16;
$mails = 100000;
$salt = “abcdefghijklmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ123456789″;
$salt2 = “-abcdefghijklmnpqrstuvwxyz123456789″;
srand( ( double ) microtime() * 1000000 ); // start the random generator
$email = array();
for( $k = 0; $k < $mails; $k++ ) {
$account = ”;
$domain = ”;
for ( $i = 0; $i < $totalChar; $i++ ) {
$account = $account . substr( $salt, rand() % strlen( $salt ), 1 );
}
for ( $j = 0; $j < $totalDomain; $j++ ) {
$domain = $domain . substr( $salt2, rand() % strlen( $salt2 ), 1 );
}
$top = ”;
$TLD = rand( 1, 10 );
if ( $TLD == 1 ) {
$top = ‘.com’;
} else if ( $TLD == 2 ) {
$top = ‘.net’;
} else if ( $TLD == 3 ) {
$top = ‘.org’;
} else if ( $TLD == 4 ) {
$top = ‘.uk’;
} else if ( $TLD == 5 ) {
$top = ‘.jp’;
} else if ( $TLD == 6 ) {
$top = ‘.cn’;
} else if ( $TLD == 7 ) {
$top = ‘.ru’;
} else if ( $TLD == 8 ) {
$top = ‘.it’;
} else if ( $TLD == 9 ) {
$top = ‘.de’;
} else if ( $TLD == 10 ) {
$top = ‘.ca’;
} else {
$top = ‘.tw’;
}
$email[] = $account . ‘@’ . $domain . $top;
echo ‘<a href=”mailto:’ . $account . ‘@’ . $domain . $top . ‘”>’ . $account . ‘@’ . $domain . $top . ‘</a><br />’.”\n”;
}

しかし、このやり方が自分自身にやってくるスパムを直に減らす役に立たないことはわかるのですが、本当にスパム業者を牽制したり、あるいはスパム業者のデータベースを「汚し」たりするのでしょうか。そのあたりはかなり疑問があります。現在はスパム業者が自分のマシンからメールを送信することは殆どありません。その代わりに、ボットネットを使うのが当たり前のようになってきています。たかだか10万通ぶんのメールアドレスが全て実在しないメールアドレスだからといって、それらメールアドレスの死活確認など、1時間もかからずに終わるでしょう。

それから、上記のコードだとドメインの作り方が単純すぎます。「@」の後は、ドメイン名が一つとトップレベルドメインが一つの組み合わせなので、「@foobar.com」の死活判定ができれば、あとは「hoge@foobar.com」も「huga@foobar.com」も「unknown@foobar.com」も、とにかくアカウント部分にどんな文字列がこようと、以降は無視されてしまうでしょう。スパム業者を攪乱したいのであれば、アカウント部分よりもサブドメイン部分を増やして「hoge@2938.foobar.com」などと生成する方が効果的かと思われます。

そして最後に、このようなページを置くと検索エンジンのロボットにいらぬ負担がかかるかもしれませんし、そもそもこれだけ大量のリンクポインタが一つのページに存在すると、Google から「リンクファーム」の判定を食らう可能性があります。また、偶然に10万個のメールアドレスが書かれたページを見たユーザさんにも、いらぬ負担がかかります。自分のサイトでこうしたページを公開するリスクと比べると、あまり有効ではないと考えます。

[updated: 2008.11.30]

ちなみに、僕のアカウントに来ているスパムのドメインに info@ を付けたリストを公開しておきます。Spam Mail Killer に登録してもよいかもしれませんが、中にはサーバから削除されると困るドメインが含まれているかもしれません(なので、僕自身も必要なメールを削除しているのかもしれませんが・・・)。

1個のコメント

  1. philsci says:

    あと、このやり方だと「本物のメールアドレス」を生成してしまう可能性が残ります。

コメントがあればどうぞ

monthly archives

yearly archives

archive

microformat (vCard)

KAWAMOTO Takayuki

Mr. KAWAMOTO Takayuki
also known as philsci
(birth day: Sep 20 1968)
live in Osaka city, Osaka, Japan.

promotions

accounts

banners