Spambots und Downloads blockieren


Über die Möglichkeiten Andere auszuschließen
Im Kampf gegen Spambots, Robots, unerwünschten Downloadtools und Downloadzugriffen von anderen Webseiten können Ihnen wenige Quellcodezeilen helfen. Wir erklären Ihnen, was Sie tun müssen und woraus Sie achten sollten.
Was sich im ersten Moment wie eine Traumvorstellung für jeden Webmaster anhört, ist zumindest bedingt möglich. Natürlich können wir durch die nachfolgenden Erläuterungen nicht vor jeden unerwünschten Zugriff schützen. Ein Allzweckmittel im Kampf gegen Spambots, Robots und unerwünschten Downloadtools existiert wohl auch nicht. Dennoch haben Sie hier die Möglichkeit einen Großteil vom Zugriff auf Ihre Webseite auszuschließen und das sollten Sie nutzen.
Im Kampf gegen den unerwünschten Zugriff benötigen wir lediglich die Datei „.htaccess“. Die Datei ist Ihnen vielleicht schon bekannt. Sie wird ebenfalls zum Erstellen eigener Fehlerseiten oder zum Schützen von Verzeichnissen auf Apache oder zu Apache ähnlichen Servern genutzt. Die Datei beginnt mit einem Punkt. Da ein Dateiname unter Windows nicht mit einem Punkt beginnen darf, empfiehlt es sich die Datei vorerst anders zu benennen und den Namen auf dem Webserver entsprechend anzupassen. Sie sind sich nicht sicher, ob Ihr Webserver auch Apache nutzt oder vielleicht sogar unter Windows läuft? Die meisten Server laufen unter Linux und nutzen daher das üblicherweise das Linux beiliegende Webserver-Programm Apache. Die Wahrscheinlichkeit, dass Ihr Webserver eine andere Konfiguration nutzt ist also sehr gering. Kommen wir zum Inhalt der Datei. Wenn Sie das Herunterladen von Bildern und anderen Dateien von fremden Servern verhindern wollen, reichen folgende Anweisungen aus:

001:
002:
003:
004:
005:
 RewriteEngine on
 RewriteCond %{HTTP_REFERER} !^$
 RewriteCond %{HTTP_REFERER} !^http://IhreDomain.de.*$ [NC]
 RewriteCond %{HTTP_REFERER} !^http://www.IhreDomain.de.*$ [NC]
 RewriteRule /* http://www.IhreDomain.de/error.htm [R,L]

Die Datei „.htaccess“ muss sich zusammen mit den zu schützenden Dateien in einem eigenen Unterverzeichnis befinden, da sonst auch externe Verlinkungen auf Ihre normalen HTML-Seiten nicht mehr möglich wären. Die erste „RewriteCond“ schützt uns vor Problemen, wenn der Browser die Adresse der zuvor angewählten Webseite (den Referer) nicht meldet. In unserem Codeschnipsel lassen wir Downloads von der Domain „http://IhreDomain.de“ bzw. „http://www.IhreDomain.de“ zu. Das „[NC]“ steht für „No Case“. Durch die Angabe wird nicht zwischen Groß- und Kleinschreibung innerhalb der Domain unterschieden. Bei einem Zugriff von einer anderen Domain erfolgt eine „RewriteRule“, die den Benutzer auf die Fehlerseite „error.htm“ weiterleitet. Das „R“ am Ende der „RewriteRule“ bedeutet Redirection (dt. Weiterleitung). Das L beendet die Umleitungs-Regeln.

Wollen Sie lieber Spambots und Robots aussperren, so reichen folgende Anweisungen innerhalb der Datei „.htaccess“:

001:
002:
003:
004:
 ErrorDocument 403 /error403.htm
 RewriteEngine on
 RewriteCond %{HTTP_USER_AGENT} (Email|Crescent|^wget|^$) [NC]
 RewriteRule !error - [F]

Die erste Zeile definiert eine eigene Fehlerseite für den Fehler 403. Mehr hierzu erfahren Sie im entsprechenden Artikel „Eigene Fehler-Seiten“. Innerhalb der „RewriteCond“ sorgen wir dafür, dass Browser oder Robots, in deren Identifikation das Wort „Email“, „Crescent“ oder „wget“ vorkommen, den Status „Forbidden“ erhalten und somit die Fehlerseite „error403.htm“ angezeigt wird. Das zuletzt genannte Wort „wget“ steht für ein Download-Programm, welches das komplette Herunterladen einer Webseite ermöglicht. Mit Hilfe des Zeichens „^“ überprüfen wir, ob der String (dt. Zeichenkette) „wget“ am Anfang der Identifikation vorkommt. Für den Fall, dass sich der Browser oder Robot überhaupt nicht identifizieren will, überprüfen wir mit „^$“ auf einen Leerstring. Der Zusatz „[NC]“ steht wie zuvor für „No Case“. Damit die Fehlerseite angezeigt werden kann, benötigen wir eine „RewriteRule“, in der wir alle Dateien mit der Zeichenfolge „error“ vom Status „Forbidden“ ausschließen.