Du bist hier:  Seitenreport    Artikel

Webcrawler aussperren, die die robots.txt ignorieren

05. June 2014
Matthias Gläßner
Schlagworte Tags: robots.txt, crawler, seoKommentare: 0

Webcrawler können für erheblichen zusätzlichen Traffic auf Deiner Website sorgen und Inhalte in Suchmaschinen bringen, die eigentlich nicht für die Öffentlichkeit gedacht sind. Dies können z.B. Nutzerprofile sein, die zwar öffentlich zugänglich sein, in Suchmaschinen aber nicht auftauchen sollen. Was aber tun, wenn sich ein Crawler nicht an die Angaben in der robots.txt hält und wahllos Seiten indexiert, die explizit ausgeschlossen werden sollen?

Einen Honeypot für den "bösen" 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).

Quellcode

Möglicher Eintrag in der robots.txt:

  1. User-agent: *
  2. Disallow: /honeypot.php

Mögliche honeypot.php:

  1. <?php
  2. /* honeypot.php */
  3.  
  4. $email = 'meineEmail@domain.tld';
  5. $subject = 'Neuer Bot im Honeypot';
  6.  
  7. $mailContent = 'Datum: '.date('d.m.Y, H:i:s')."\r\n".
  8. 'IP-Adresse: '.$_SERVER['REMOTE_ADDR']."\r\n".
  9. 'Host: '.$_SERVER['REMOTE_HOST']."\r\n".
  10. 'User-Agent: '.$_SERVER['HTTP_USER_AGENT']."\r\n";
  11.  
  12. mail($email, $subject, $mailContent);
  13. ?>

In den Honigtopf gelaufene Webcrawler aussperren via .htaccess:

  1. order allow,deny
  2. deny from 209.237.238.230
  3. deny from 38.118.25.59
  4. allow from all
  1. RewriteEngine On
  2. RewriteCond %{HTTP_USER_AGENT} ^BackDoorBot [OR]
  3. RewriteCond %{HTTP_USER_AGENT} ^Baidu
  4. RewriteRule ^.* - [F,L]

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 .

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.

  •  
  • 0 Kommentar(e)
  •  

Kommentar hinterlassen

Zurück

Mehrfach empfohlen

Seitenreport ist einer der bekanntesten SEO und Website Analyse Dienste im deutschsprachigen Raum und wurde u.a. schon empfohlen:
von Mr. Wong im Wong Letter
vom Leserservice der Deutschen Post
vom Technik Blog SiN
und vielen anderen

Seitenreport API

Verfolge die SERP Positionen Deiner Keywords und erhalte Informationen über verwendete Mikroformate, frage die Ergebnisse unserer Analysen live ab oder greife auf unsere History-Datenbank zu. Dies alles bietet Dir die neue Seitenreport API. Kontaktiere uns, um weitere Infos zu erhalten.