Все прекрасно знают, откуда происходит наполнение спаммерских баз Email'ов: из скаченных и отсканированных веб-страниц, из логов мелких продажных хостинг-провайдеров, из ICQ и т.д. Есть просто способ испортить роботов, которые сканируют интернет и вырезают с веб-страниц почтовые адреса.
Программа ниже генерирует старницу, содержащую множество ссылок на несуществующие Email. Если на такую станичку попадер спам-робот, то база спаммера пополниться 500 левыми и заведомо не работающими адресами. Кроме самих адресов на странице будет содержаться ссылки на мнимые страницы, которые робот ломанется скачивать, что в свою очередь будет каждый раз выдавать все новые и новые горы неработающих почтовых адресов (но такое зацикливание не вечно, а ограничено до 1000 страниц).
Чтобы на такие страницы не попали роботы поисковых машин, стоит META тег запрещающих индексирование. Это сделано потому, что, вероятно, спам-робот не обратит вниамние на META, а честный робот поисковика не будет индексировать генерируемый мусор.
Чтобы запустить эту программу, скачайте файл, переименуйте его в какое-нибудь безобидное название, типа userlist.php, и поставьте с главной страницы вашего сайта (или других мест) невидимую ссылку на эту программу. Примерно, поместите такой код: <a href="имя_скрипта.php" style='text-decoration: none'><font color=white>.</font></a> Особо скрывать ссылку не нужно, пользователи сайта все равно не будут по такой программе ползать - не интересно. Ссылочкой заинтересуются лишь роботы.
Программа очень простая. В начале генерит в среднем 5 ссылок для дальнейших заходов роботом, и ниже выдает в среднем 500 адресов email. Ссылки на саму себя программа выдает в зависимости от текущего дня. Т.е. если сегодня спам-робот выкачает все, то завтра ссылки станут уже другими и робот пойдет по новой. Всего, в течении дня, робот выкачает около 1000 страниц (500 000 адресов за раз).
Примите участие в коллективной атаке спаммерских баз email - разместите скрипт у себя на сайте!
Текст программы:
## # # fake_mail.php # # version 1.0, 2002-12-15 # # (c) Dmitry Borodin, http://php.spb.ru/php/fake_mail.php # ##
ini_set("display_errors",1);
// создать согласную function s() { $word="qwrtypsdfghjklzxcvbnm"; return $word[mt_rand(0,strlen($word)-1)]; } // создать гласную function g() { $word="euioam"; return $word[mt_rand(0,strlen($word)-1)]; }
// разные последовательности гласных/согласных, которые дают человеко-подобные слова function name0() { return s().g().s(); } function name1() { return s().g().s().g(); } function name2() { return s().g().g().s(); } function name3() { return s().s().g().s().g(); } function name4() { return g().s().g().s().g(); } function name5() { return g().g().s().g().s(); } function name6() { return g().s().s().g().s(); } function name7() { return s().g().g().s().g(); } function name8() { return s().g().s().g().g(); } function name9() { return s().g().s().g().s().g(); }
// эти "клевые" числа люди любят использовать в адресах email $cool=array(1,2,5,10,99,100,111,666,1999,2000,2001,2002,2003);
// создать случайное слово function randword() { global $cool; $func="name".mt_rand(0,9); $func2="name".mt_rand(0,9); switch (mt_rand(0,10)) { case 0: return $func().mt_rand(1,99); case 1: return $func()."-".$func2(); case 2: return $func().$cool[mt_rand(0,count($cool)-1)]; case 3: case 4: return randpass(mt_rand(3,12)); default: return $func(); } }
// тоже, но заданной долины из совершенно случайных букв function randpass($len) { $word="qwertyuiopasdfghjklzxcvbnm1234567890"; $s=""; for ($i=0; $i<$len; $i++) { $s.=$word[mt_rand(0,strlen($word)-1)]; } return $s; }
// в 33% случаях брать домен из этого списка (случайный домен) $domain1=array("hotmail.com","microsoft.com","mail.com","imail.com","microsoft.ru"); $d1c=count($domain1);
// в 66% случаях генерить домено случайным образом $domain2=explode(" ", "gs ac af al dz as ad ao ai aq ag ar am aw au at az bs bh bd bb by be bz bj bm bt bo
ba bw bv br io bn bg bf bi by kh cm ca cv ky cf td cl cn cx cc co km cg ck cr ci hr
hr cu cy cs dk dj dm do tp ec eg sv gq ee et fk fk fo fj fi fr gf pf tf ga gm ge de de gh gi gr gl gd gp gu gt gn gw gy ht hm hn hk hu is in id ir iq ie il it jm jp jo kz ke ki kp kr kw kg la lv lb ls lr ly li lt lu mo mk mg mw my mv ml mt mh mq mr mu mx fm md mc mn ms ma mz mm na nr np nl an nt nc nz ni ne ng nu nf mp no om pk pw pa pg py pe ph pn pl pt pr qa re ro ru rw kn lc vc ws sm st sa sn sc sl sg si sb so za es lk sh pm sd sr sj sz se ch ch sy tw tj tz th tg tk to tt tn tr tm tc tv ug ua ae uk gb us um uy su uz vu va ve vn vi vg wf eh ye yu zr zm zw com edu net mil org gov kp kr la su sk cz"); $d2c=count($domain2);
// Пометка для роботов поисковых машин, что эту страницу нельзя индексировать echo "\n\n";
// Имя текущего скрипта $fn=getenv("SCRIPT_NAME");
// выдать 0-10 ссылок (примерно 5 за раз) $cnt=mt_rand(0,10); for ($i=0; $i<$cnt; $i++) { $rnd=randpass(mt_rand(1,3)); $day=date("d_m"); echo "Cool Link! Click here -- $rnd \n"; }
echo "\n\n\n" ;
// выдать 0-1000 email'ов (примерно 500 за раз) $cnt=mt_rand(0,1000); for ($i=0; $i<$cnt; $i++) { $u=randword(); if (mt_rand(0,2)==0) $d=$domain1[mt_rand(0,$d1c-1)]; else $d=randword().".".$domain2[mt_rand(0,$d2c-1)]; echo " $u@$d \n"; }
?>
Примеры запущенных скриптов:
Я прекрасно понимаю, что программа весьма примитивна и можно написать лучше. Да, и спаммеры могут создавать защиту от явной накрутки их баз. Но, мне кажется, это будет очень эффективно в первое, достаточно длительное, время.
|