Funktionsweise

In Spider Trap wurden mehrer Methoden eines Ausschlußes eines Clients miteinander verknüpft um möglichst effizient zu arbeiten. Jeder dieser Methoden würde allein nicht ausreichen. Spider Trap bietet aber auch keinen 100% Schutz vor bösartigen Spidern - aber dies kann wohl keine Software momentan bieten.

1. Falle aufstellen.

Die großen Suchmaschinen orientieren sich an dem Standard (Robots-Exclusion Protokoll) und den Anweisungen in der robots.txt d.h. keine Inhalte aufzunehmen.die per robots.txt ausgeschlossen werden.

Bei Google ist zwar bei der site Abfrage oft ein Link vorhanden aber da dieser ohne Cache und Beschreibung ist, taucht dieser auch nicht in den Suchergebnissen aus..Eie guter Artikel gibt es auf: Im Index != gespidert

Auf diesem Hintergrund aufbauend stellen wir nun die Falle in dem wir in der Robots.txt ein Verzeichnis nicht zum Spidern freigeben.

Dies geschieht durch folgenden Code in der robots.txt:

User-agent: *
Disallow: /spider-trap
User-Agent: Googlebot
Disallow: /spider-trap

Google möchte gerne persönlich angesprochen werden, wie folgender Beitrag beschreibt:

Robots Experiment

Jetzt dürfte also ein Spider keine Seiten mehr im Verzeichnis spider-trap verfolgen. Um das auszuprobieren setzen wir einen Link genau in dieses Verzeichnis. Folgt der Robot nun diesem Link befolgt er nicht die Regeln der robots.txt. Der Webcrawler dürfte zwar den Link "kennen" aber er sollte ihn nicht besuchen. Falls nun der Webcrawler die Datei spider-trap/index.php anfordert wird der Client für die Seite gesperrt.

2. Sperren

Hier nun die möglichen Methoden der Sperre:

2.1. Ausschluß über User Agent

Unter User-Agent versteht man den übertragenen Name eines Clients. Jeder Browser oder Spider benutzt einen User-Agent der im HTTP Protokoll mitgegeben wird..

Hier einige typische User-Agent-Angaben:

Mozilla/5.0 (Windows; U;Windows NT 5.1; de; rv:1.8)Gecko/20051111 Firefox/1.5 (Browser Firefox)
Googlebot/2.1 (+http://www.googlebot.com/bot.html) (Google)

Es gibt in Spider Trap zwei Flat Files

a) Whitelist.txt

In dieser Datei stehen die User-Agents die immer Zugriff auf die Seiten haben sollen. Diese Robots sollen also nie ausgeschlossen werden auch wenn Sie in die Spider-Falle tappen. Die Gefahr dabei ist, dass diese User-Agent-Angaben vom Client beliebig gewählt werden können. Es gibt z.B. für den Firefox eine Extension um den User Agent zu wechseln. Daher stellt eine reine Auswertung über den User-Agent keine zuverlässige Methode dar.

b) Blacklist.txt

Wenn ein Spider in die Falle tappt wird der User Agent hier gespeichert. In dieser Datei stehen also die User Agents der bad bots. Natürlich kann man Einträge aus dieser Datei nehmen um Sperren wieder aufzuheben.

2.2. Ausschluß über htaccess

Die IP Adresse kennzeichnet jeden Client eindeutig. Die Webcrawler kommen meistens immer mit der gleichen IP auf ihre Seite. Für die Sperrung über die IP ist allerdings ein Eintrag in der htaccess Datei im Root Verzeichnis ihres Webspaces nötig. Diese Datei braucht außerdem Schreibrechte um die IPs der Clients hinzuzufpgen und ggf. wieder zu löschen. Der Vorteil der Sperre einer IP ist das das Checken der IP in keinen Script ausgeführt werden muss d.h. es sind keine Quellcodeanpassungen in Ihren Scripten nötig. Ein weiterer Vorteil ist dass der Zugriff auf die komplette Domain angewandt wird d.h. Bilder werden so auch geschützt. Um aber nicht alle Nutzer einer IP auszusperren ist die Kombination mit dem User-Agent Check sehr wichtig. Wenn sich z.B. jemand über T-Online einwählt und in unsere Falle tappt würde die von T-Online vergebene IP gesperrt. Wenn nun morgen ein andere User von T-Online nun die gleiche IP zugeordnet bekommt wäre dieser auch ausgesperrt. Deswegen gibt es die Möglichkeit des Clients eine Sperre aufzuheben.

2. 3. Aufheben der Sperre

Bei einer Sperre wird der Zugriff verweigert und ein HTTP Header 403 gesendet. In der htaccess ist es möglich eingene Fehlerseiten für bestimmte Fehler anzugeben. Wir nutzen dies um bei einem "Access Denied" das Fehlerscript forbid.php im /spider-trap/ Verzeichnis aufzurufen. Über die htaccess Datei im Spider-trap Verzeichnis ist sicher gestellt dass man auch Zugriff auf die Datei forbid.php hat. In diesem Script wird nun die Fehlermeldung mit einer kurzen Erklärung ausgegeben. Um die Sperre aufzuheben, muß nun in einem Formular der Wert eines Captchas (Zahlenbild) eingegeben werden. Wenn der Wert übereinstimmt wird die IP (htaccess) und der User-Agent (blacklist.txt) entfernt und der Zugirff funktioniert wieder. Diese Aufhebung ist vorallem an normale Besucher gedacht die neugerig auf alle Links klicken. Desweiteren ist eine automatische Sperraufhebung geplant.

2. 4 Warnungen

In der Konfigurationsdatei kann zusätzlich eine Email Adresse angegeben werden, an die bei Hinzufügen bzw. Aufheben einer Sperre eine Hinweisnachricht geschickt werden kann. Dies gilt nur zur Kontrolle und stellt ein nützliche Funktion zur Wartung bei.