Seltsame User-Agents aussperren, Search-Bots reinlassen

Vor lauter Bots kann man sich als Webseiten-Betreiber zur Zeit ja kaum noch schützen. Die nervigsten und gefährlichsten sperre ich bei unseren Webprojekten seit gewisser Zeit schon über die Webserver-Konfiguration oder .htaccess Datei aus. Beispielsweise die Kennung „Mozilla/4.0“ oder „Mozilla/5.0“ ohne jegliche weitere Information.

Normale Browser-Kennungen, wie beispielsweise die vom Internet Explorer oder von Firefox, beginnen in der Regel auch mit dieser Kennung, beinhalten dann aber weitere Informationen dahinter in Klammern.

Zugriffe, die in der Browser-Kennung keine weitere Information enthalten, sind in der Regel Angreifer-Tools, die als Ziel haben, Sicherheitslücken zu finden oder Spam-Kommentare zu hinterlassen.

Seit kurzem sind mir aber sehr häufig auch Zugriffe aufgefallen, die vom MSNBot, also dem Suchmaschinen-Spider von Bing, Microsoft’s Suchmaschine, kommen – und die sich auch nur mit „Mozilla/4.0“ identifizieren. Den will ich reinlassen.

Glücklicherweise kann man den MSNBot anhand der IP-Adresse identifizieren.

Also sieht meine mod_rewrite-Rule für die .htaccess so aus:

RewriteEngine On

RewriteCond %{REMOTE_ADDR} !^65.55.
RewriteCond %{HTTP_USER_AGENT} ^Mozilla/[1-9]\.[0-9]$ [NC]
RewriteRule ^.*$ - [F,L]

Mit der ersten Rewrite Condition wird festgelegt, dass die folgende Regel nur für Zugriffe von IPs gilt, die NICHT Mit 65.55. anfangen.

Die folgende Condition beschränkt das ganze weiter auf User_Agent-Strings, die die Form „Mozilla/“ gefolgt von einer Versionsnummer in der Form „x.y“ (x und y nur einstellie Ziffern) haben.

Und die Rewrite-Rule am Ende legt fest, dass alle derartigen Zugriffe mit einem Forbidden (HTTP Fehler 403) beantwortet werden sollen.

Mit der .htaccess gegen Hotlinking von Bildern

Es gibt ein paar unbelehrbare, die der Meinung sind, dass man Dateien – insbesondere Bilder – von anderen Servern einfach so in die eigene Webseite „reinladen“ kann. Ist ja technisch kein Problem – sogar gewollt. Von der rechtlichen Fragestellung mal ganz abgesehen sieht es aber so aus, dass derjenige, der die Dateien auf seinem Webserver liegen hat, den Traffic bezahlen muss, den der verursacht, der die Bilder in seiner Webseite verwendet. Von der Rechenleistung und der Netzwerkbandbreite mal ganz zu schweigen.

Was kann man dagegen tun?

Erstens kann man natürlich denjenigen Kontaktieren, der die Daten verwendet. Der ist oft aber gar nicht aufzuspüren.

An dem Punkt helfen dann technische Maßnahmen. So weit auf dem Webserver mod_rewrite installiert ist reichen zwei einfache Zeilen in der .htaccess.

Da die Problemkinder oft Grafiken sind, gibt es eine wirksame, eigentlich ganz unterhaltsame Option: Statt der angeforderten Grafik verschickt man eine andere, riesig große Grafik in grausamen Farben. Wenn man die einfarbig hält, dann bleibt die Dateigröße auch bei einer hohen Pixelzahl schön klein – in der Regel wesentlich kleiner als die zu ersetzende Datei. Und wenn alles gut läuft, dann will die Ersatzgrafik sowieso niemand sehen, also wird sie auch nicht so oft abgerufen 🙂

Also: Datei hochladen und folgende Zeilen in die .htaccess:

RewriteCond %{HTTP_REFERER} bandbreiteklauer\.com [OR,NC]
RewriteCond %{HTTP_REFERER} beepworld\.de [OR,NC]
RewriteCond %{HTTP_REFERER} facebook\.com [NC]
RewriteRule jpg$ /dont_hotlink.png [L]

Dabei einfach „bandbreiteklauer\.com“, „beepworld\.de“ und „facebook\.com“ durch die Domains der Bösewichte ersetzen. Will man mehr oder weniger Server aussperren, dann einfach weitere Zeilen mit RewriteCond einfügen. Es ist nur wichtig, dass die letzte Zeile am Ende nur [NC], alle anderen aber [OR,NC] enthalten, damit das ganze als ein zusammengehörender Block gehandhabt wird.