Spambots grasen Webseiten mit Harvestern nach verwendbaren Adressen ab. Um deren Adressbestand einige ungültige Adressen unterzuschieben, kann man auf Webservern mit Apache das Modul mod_rewrite verwenden. |
Anhand des User-Agent des Bots und der IP-Adresse (im Beispiel libwww-perl/5.803 und 212.19.46.52-212.19.46.54, die Daten stammen aus [1]) wird ihm der Inhalt von schoberbuster.php anstelle der aufgerufenen URL geliefert. In der PHP-Datei ist noch etwas Nacharbeit angesagt, um diese individueller erscheinen zu lassen. Insbesondere sollten noch Namen und Orte ergänzt werden.
Verbesserungen (17.11.2006):
1. Randomisierung abhängig von aktuellem Monat sowie Aufrufparameter, um wiederkehrenden Bots die gleichen Daten zu präsentieren
2. Alternativ kann man das Skript auch als normale Spamtrap verwenden, indem man einfach auf beliebigen Seiten einen Link in der Form /pfad/Hans-Dampf.html setzt. Dazu in der .htaccess den Teil zwischen "# Schober-spezifisch... # ...Schober-spezifisch" auskommentieren.
.htaccess
# bitte "pfad" anpassen RewriteEngine on RewriteBase / # Schober-spezifisch... # Wenn User-Agent libwww... RewriteCond %{HTTP_USER_AGENT} ^libwww-perl/5.803 # ...und Adresse *.schober.de... RewriteCond %{REMOTE_ADDR} ^212\.19\.46\.(5[2-4]) # ...dann immer schoberbuster.php liefern RewriteRule ^.*$ /pfad/schoberbuster.php # ...Schober-spezifisch RewriteRule ^pfad/(.*)-(.*).html$ /pfad/schoberbuster.php?vorname=$1&nachname=$2 [L] |
schoberbuster.php
<? # schoberbuster.php # (C) 2006 by heinerle # # ekelhafte Adress-Sammler mit Müll füttern # Beliebige Zahl 1..99 einsetzen $myRnd=11; $VornamenW=array("Andrea","Anke","Ariane","Brunhilde","Claudia","Margot", "Marion","Nele","Ottilie","Paula","Sabine","Wilhelmine","Xantippe"); $VornamenM=array("Albert","Andreas","Erich","Franz","Fritz","Hans","Heiner", "Heinz","Helmut","Helmuth", "Johann","Thomas","Viktor","Wilhelm","Xaver"); $Nachnamen=array("Bauer","Burda", "Haupt","Honecker","Huch","Kohl","Maier", "Meier","Meyer","Otto","Panz","Schober","Schulz","Schulze","Weber"); $Strassen1=array_merge($VornamenW, $VornamenM, $Nachnamen); $Strassen2=array("allee","gasse","platz","str.","strasse","straße", "ufer","weg"); $OrteMitVorwahl=array( "01___ Dresden" => "0351", "04___ Leipzig" => "0341", "1____ Berlin" => "030", "2____ Hamburg" => "040", "5____ Köln" => "0214", "60___ Frankfurt" => "069", "652__ Wiesbaden" => "0611", "7____ Stuttgart" => "0711", "8____ München" => "089", "861__ Augsburg" => "0821", "90___ Nürnberg" => "0911" ); $FreeMailer=array( "de.de", $_SERVER['HTTP_HOST'], gethostbyaddr($_SERVER['REMOTE_ADDR']), "us.de" # "freenet.de","gmx.de","gmx.net","web.de" ); function fnVorname() { global $VornamenM, $VornamenW; if(rand(0,1)) { return $VornamenM[array_rand($VornamenM)]; } else { return $VornamenW[array_rand($VornamenW)]; } } function fnNachname() { global $Nachnamen; return $Nachnamen[array_rand($Nachnamen)]; } function fnStrasse() { global $Strassen1, $Strassen2; if(rand()&1) { return $Strassen1[array_rand($Strassen1)]. $Strassen2[array_rand($Strassen2)]; } else { return $Strassen1[array_rand($Strassen1)]."-". ucwords($Strassen2[array_rand($Strassen2)]); } } function fnMakeEmail($Vorname, $Nachname){ global $FreeMailer; switch(rand(0,3)) { case 0: $Email=$Vorname.".".$Nachname; break; case 1: $Email=substr($Vorname, 0, 1).".".$Nachname; break; case 2: $Email=$Vorname.".".substr($Nachname, 0, 1); break; default: $Email=$Vorname.$Nachname; break; } switch(rand(0,2)) { case 0: $Email=str_replace(".", "_", $Email); break; case 1: $Email=str_replace(".", "-", $Email); break; } return $Email."@".$FreeMailer[array_rand($FreeMailer)]; } $Vorname=$_GET['vorname']; $Nachname=$_GET['nachname']; # Zufallswert, abh. von Monat und Aufrufparametern srand(crc32($Vorname.date('F').$Nachname) / $myRnd); if(!$Vorname) $Vorname=fnVorname(); if(!$Nachname) $Nachname=fnNachname(); $Strasse=fnStrasse(); $Hausnr=rand(1, 123); $Ort=array_rand($OrteMitVorwahl); $Vorwahl=$OrteMitVorwahl[$Ort]; $Ort=preg_replace("/_/e", "rand(0,9)", $Ort); $Email=fnMakeEmail($Vorname, $Nachname); print "<html>\n<head>\n <title>".$Vorname." ".$Nachname."</title>\n"; print " <meta name=\"robots\" content=\"follow,index\">\n"; print " <meta name=\"keywords\" content=\"Visitenkarte,Kontakt,Person,Adresse,". $Vorname.",".$Nachname."\">\n"; print " <meta name=\"description\" content=\"Visitenkarte von ".$Vorname." ". $Nachname."\">"; print "</head>\n<body>\n"; print "<h1>Visitenkarte von ".$Vorname." ".$Nachname."</h1>\n"; print "<p><hr>Hier etwas ausschmücken<hr><p>\n"; print "<img src=\"".strtolower($Vorname.$Nachname).".gif\" alt=\"".$Vorname." ". $Nachname."\" width=100 height=140 border=1><p>\n"; print "Adresse:<br>\n"; print $Vorname." ".$Nachname."<br>\n"; print $Strasse." ".$Hausnr."<br>\n"; print $Ort."<br>\n"; print "Tel.: ".substr($Vorwahl."/".rand(10000,getrandmax()), 0, 12)."<br>\n"; print "E-mail: <a href=\"mailto:".$Email."\">".$Email."</a><p>\n"; print "<p><hr>Hier etwas ausschmücken<hr><p>\n"; $Vorname=fnVorname(); $Nachname=fnNachname(); print "<a href=\"".$Vorname."-".$Nachname. ".html\" title=\"Visitenkarte von ".$Vorname." ".$Nachname."\">".$Vorname." ". $Nachname."</a><br>\n"; print "</body>\n</html>"; ?> |