Webcrawler aussperren, die die robots.txt ignorieren

Veröffentlicht am:
von Matthias Gläßner    0 Kommentare SEO

Einen Honeypot für den Webcrawler erstellen

Eine optimale Lösung des Problems besteht darin, einen sogenannten Honeypot (Honigtopf) für diejenigen Webcrawler zu erstellen, die sich nicht an die Angaben in der robots.txt halten. Dabei wird auf der Website ein Link auf eine PHP-Datei erstellt, der explizit in der robots.txt mit einem Disallow-Befehl ausgeschlossen wurde.

Wird die PHP-Datei dennoch aufgerufen, können die IP-Adresse und die Browser-Kennung ausgelesen werden, über die der jeweilige Bot auf der Website komplett gesperrt werden kann. Für einen wirksamen Schutz sollte immer die IP-Adressen-Sperre verwendet werden, da die Browser-Kennung sehr leicht durch das Senden entsprechender Header manipulierbar ist. Ausnahmen sind bekannte Crawler-Applikationen, die sich eindeutig identifizieren (z.B. Shell-Programme mit wget).

Code zum Aussperren von Bad Bots

Möglicher Eintrag in der robots.txt:

User-agent: *
Disallow: /honeypot.php

Mögliche honeypot.php:

<?php
/* honeypot.php */
     
$email = 'email@domain.tld';
$subject = 'Neuer Bot im Honeypot';	
     
$mailContent = 'Datum: ' . date('d.m.Y, H:i:s') . "\r\n".
'IP-Adresse: ' . $_SERVER['REMOTE_ADDR'] . "\r\n".
'Host: ' . $_SERVER['REMOTE_HOST'] . "\r\n".
'User-Agent: ' .$_SERVER['HTTP_USER_AGENT'] ."\r\n";
     
mail($email, $subject, $mailContent);
?>

Bekannte Bad Bots aussperren

Darüber hinaus kannst Du "bösen Crawlern" (Bad Bots) von vornherein den Zugriff auf Deine Website verbieten. Hierzu gibt es fertige Bad-Bot-Listen, die regelmäßig aktualisiert werden und die Du einfach in Deine .htaccess-Datei einfügen kannst: Liste bekannter Bad Bots .

BadBot aussperren via .htaccess

order allow,deny 
deny from 209.237.238.230
deny from 38.118.25.59
allow from all

und / oder

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^BackDoorBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^Baidu 
RewriteRule ^.* - [F,L]

Fazit

Es lohnt sich, von vornherein darauf zu achten, dass "böse" Webcrawler auf der eigenen Website nur das tun können, was ihnen explizit erlaubt ist. Durch das automatische Aussperren von Bots, die sich nicht an die Regeln in der robots.txt halten, können Disallow-Bereiche wie z.B. Mitglieder-Profile gut geschützt werden. Zum Schutz sensibler, nicht öffentlicher Bereiche sollte hingegen ein Passwort- oder Verzeichnisschutz verwendet werden.

« zurück zur Artikelübersicht