#!/usr/bin/perl ###################################################################### # # [Script]: eatme.pl # # [Version]: v0.10 - 05-07-2007 # # [Auteur]: Jerome Bruandet # # [Description]: script perl permettant de donner de fausses adresses # emails aux spambots. Cree aussi de nouvelles pages aux noms aleatoires # qui elles-memes renvoient sur de nouvelles listes de faux emails. # # [Necessite]: serveur apache + perl + mod_rewrite (ou mod_security) # # [Installation]: cf http://spamcleaner.org/fr/misc/eatme.html # ###################################################################### #=================== DEBUT DE LA CONFIGURATION ======================# # les lettres de l'alphabet qui serviront a creer de faux email. @alphabet=('a','b','c','d','e','f','g','h','i','j','l','m', 'n','o','p','r','s','t','u','v'); # extensions utilisees pour les faux emails: @tld=('.net','.com','.org','.fr','.de','.eu'); # extension des fausses page HTML. Par defaut '.htm' # si vous modifiez l'extension, pensez aussi a modifier la regle # de redirection de mod_rewrite: $extension= ".htm"; # nombre maxi de caracteres a generer pour le nom et le domaine # des email: $max_car=13; # nombre maxi d'emails a generer (evitez de mettre une valeur # superieure a 200 pour ne pas trop charger la page et rendre # mefiants les spambots): $max_emails=150; # nombre maxi de liens renvoyant sur d'autres pages d'emails: $max_liens=8; # nombre de pages a generer: apres $max_pages, le script arretera # de creer des liens afin d'eviter une boucle sans fin et une # surcharge du serveur (le spambot pourrait continuer a relever # des emails a l'infini...). La valeur doit etre inferieure a 100. $max_pages=10; # message a afficher pour les utilisateurs qui tomberaient par erreur # sur la page: $message_404="Erreur: la page demandée n'existe pas!"; # pour debogage: # 0= masque les emails et les liens dans des <div> (defaut) # 1= affiche les emails et les liens $debug=0; #===================== FIN DE LA CONFIGURATION ======================# print "Content-type: text/html\n\n"; # On affiche une erreur pour les utilisateurs "normaux". Seule cette # partie leur sera visible, le reste sera cache dans le code HTML/CSS. # On ajoute aussi "noindex,nofollow" afin d'eviter que les robots # classiques (googlebot etc) ne se prennent les pieds dans notre piege: print qq~

$message_404

~; # Partie cachee aux utilisateurs mais bien visible pour les spambots: print "
" if not $debug; $nb_lettres=@alphabet; $nb_tld=@tld; # On verifie si on a deja affiche $max_pages: $URL = $ENV{'REDIRECT_URL'}; if ($URL=~/(\d{1,2})\Q$extension\E$/i){ if ($1>=$max_pages){goto NO_PAGES} $count=$1; } $count++; # Creation des fausses pages/liens: $HOST= 'http://'.$ENV{'HTTP_HOST'}; for (1..$max_liens){ $HTML_page=&genere_chaine."$count$extension"; print "$HTML_page
\n"; } print "

"; NO_PAGES: # Generer les fausses adresse emails: for (1..$max_emails){ $user_name = &genere_chaine; $domain_name=&genere_chaine; $ext=$tld[int(rand($nb_tld))]; print "$user_name\@$domain_name$ext \n"; } print "

" if not $debug; print ""; exit; ###################################################################### sub genere_chaine{ $chaine=""; $nb_car= rand($max_car); $nb_car+=2 if $nb_car<4; for (1..$nb_car){ $lettre = int(rand($nb_lettres)); $chaine.=$alphabet[$lettre]; } return $chaine; } ######################################################################