Böse Bots aussperren – mit einer Suchmaschinenfalle böse Bots aufspüren

fehlt wasgeht sogutsehr guthat geholfen (No Ratings Yet)
Loading ... Loading ...
Werbung




Mäusefalle für Suchmaschinen
Die meisten Suchmaschinen-Spider halten sich an den robots.txt-Standard, geregelt unter http://www.robotstxt.org/wc/exclusion.html, manche aber auch nicht. Gerade diese Spider sollte man im Auge behalten, da sie nicht immer gutes im Schilde führen. Allerdings läuft auch der Google-Bot hin und wieder in diese Falle. Wie kann man diese Bots erkennen ?

Böse Bots erkennen und aussperren

Sofern man PHP einsetzt, ist dies kein Problem. Mit folgender Anleitung kann eine solche Falle gebaut werden. Zunächst legen wir ein Verzeichnis in der http-root an, z.B. botfalle:

# mkdir botfalle

Nun muss dem Spider das Durchsuchen dieses Verzeichnisses verboten werden. Dies geschieht in der robots.txt, die in der http-root angelegt sein sollte oder angelegt wird:

User-agent: *
Disallow: /botfalle/

Danach muss dem Spider allerdings mitgeteilt werden, dass es ein solches Verzeichnis gibt. Dies kann mit einem versteckten Link in der Hauptdatei (meist index.php) erledigen:

Hierbei muss allerdings noch ein Bild mit dem Namen pixel.gif erzeugt werden und in das Verzeichnis images gelegt werden. Nun erzeugen wir eine Datei, die eine Mitteilung verschickt, falls ein Spider versucht, das Verzeichnis /botfalle zu spidern. Diese Datei muss eine index.php oder andere DefaultDocument Datei sein:

$mailto = "admin@diesedomain.de";
if(phpversion() >= "4.2.0") {
   extract($_SERVER);
}
?>
Bot Falle
Dies ist eine Bot-Falle.
Zurück zur <a href="../">Hauptseite</a>");
while ($line = fgets($fp,255)) {
    $u = explode(" ",$line);
    if (ereg($u[0],$REMOTE_ADDR)) {$badbot++;}
}
fclose($fp);
if ($badbot == 0) { /* neuer Spider erkannt */
    $tmestamp = time();
    $datum = date("Y-m-d (D) H:i:s",$tmestamp);
    $from = "badbot-watch@diesedomain.de";
    $betreff = "diesedomain.de - Bot-Falle";
    $msg = "Ein Spider trat in die Falle $REQUEST_URI - $datum n";
    $msg .= "IP: $REMOTE_ADDR, User-Agent: $HTTP_USER_AGENTn";
    mail($mailto, $betreff, $msg, "From: $from");
    /* Bot eintragen */
    $fp = fopen($filename,'a+');
    fwrite($fp,"$REMOTE_ADDR - - [$datum] "$REQUEST_METHOD
    $REQUEST_URI $SERVER_PROTOCOL" $HTTP_REFERER $HTTP_USER_AGENTn");
    fclose($fp);
}
?>

Nun muss die Datei blacklist.dat in der http-root angelegt werden und dem Webserver Dämon das schreiben erlaubt werden:

touch blacklist.dat
chown www-data:www-data blacklist.dat

Nun heisst es abwarten. Wenn ein Spider also in die Bot-Falle tappt, bekommt man dies per Mail mitgeteilt. Weiter passiert allerdings nichts. Das ist auch gut so, denn manche Bots verfolgen auch versteckte Links und sind von daher noch lange nicht schlecht. Manche andere bot-trap Skripts verbieten nach dem treten in die Falle diesen IPs den Zutritt zur Webseite, allerdings kann das auch nachteilig sein. Andere Skripts halten allerdings auch diese IPs mit einer Zeitschleife hin, allerdings ist das rechtlich nicht korrekt, da sie einen Programmablauf behindern.

Ungewünschte IP entdeckt
Also, was tun, wenn man eine unerwünschte IP entdeckt hat? Nach einem manuellen aussondieren der IPs, die in die Bot-Falle getappt sind, kann man diese per .htaccess aussperren:

Deny from xxx.xxx.xxx.xxx
Deny from yyy.yyy.yyy.yyy

bisherige Suchbegriffe:

  • verzeichnis sch?tzen htaccess loc:DE


Werbung


Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *


*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>