Website-Zugriffe anhand einer bestimmten IP-Adresse sperren oder umleiten

Dieser Tage stellte ich mit Überraschung fest, dass auf einer der von mir betriebenen Websites die sogenannten Pageviews beim rund 20-fachen der sonst üblichen Werte lagen. Auch wenn hier höhere Werte sicherlich gewünscht sind, ist ein solches Ereignis leider meist das Ergebnis von weniger netten Besuchern und siehe da: ein Blick in die Log-Dateien zeigte, dass über einen Server aus der Ukraine versucht wurde, das Gästebuch zuzuspamen. Dank eingebauer Anti-Spam-Algorithmen gelang das zwar nur in einem Fall, aber mehrere 10.000 unötiger Seitenaufrufe pro Tag müssen trotzdem nicht sein. Also musste ich selber auch mit härteren Bandagen kämpfen und dachte mir, die hierfür geeigneten Methoden könnte ich gleich mal als kleines Tutorial veröffentlichen!

Also wie kann man sich gegen ungewünschte Besucher wehren, die mit einer festen, bestimmbaren IP versuchen, Zugriff auf die Website zu nehmen. Hier ein paar Ideen:

PHP: $_SERVER["REMOTE_ADDR"

  1. if($_SERVER["REMOTE_ADDR"]==”111.123.456.78″)
  2. {
  3. header("Location: http://www.bka.de");
  4. exit();
  5. }

Hier wird der Besucher anhand der IP identifiziert und auf eine andere Website umgeleitet.

Der grosse Vorteil ist, dass diese Lösung auf den meistern Servern umgesetzt werden kann. Die Nachteile an dieser Methoden sind, dass die Website auf Basis PHP erstellt sein muss, der Code ggf. in jeder PHP-Datei eingebaut werden muss (sofern es keine zentrale Datei gibt, die von allen anderen aufgerufen wird, also z.B. Konfigurations-Dateien) und der Besucher natürlich i.d.R. mitbekommt, dass er eine ganz andere Seite angezeigt bekommt, als gewünscht.

htaccess: order

  1. order allow,deny
  2. deny from 111.123.456.78
  3. allow from all

Die Datei .htaccess ist eine Server-Konfigurationsdatei, in der manuelle Anpassungen an den Servereinstellungen vorgenommen werden können. Nicht auf allen Servern und insbesondere bei billigengünstigen Webhostern ist der Zugriff gestattet und wenn doch, oftmals reglementiert. Der o.g. Code müsste aber bei sehr vielen Anbietern funktionieren und sperrt den Besucher komplett aus, d.h. er bekommt einen Fehlerhinweis.

Hier ist der grosse der Vorteil, dass in einer einzigen Daten zentral die Sperre eingetragen wird. Nachteilig ist, dass auch hier der Besucher es i.d.R. mitbekommt und dass es nicht bei allen Anbietern zugelassen wird, eine htaccess-Datei zu nutzen.

htaccess: mod_rewrite 1

Die erste Methode mittels PHP kann auch via der Datei .htaccess vorgenommen werden:

  1. RewriteEngine on
  2. RewriteCond %{REMOTE_ADDR} ^(111.123.456.78)
  3. RewriteRule .* http://www.bka.de [R=301,L]

Auch hier wird die IP-Adresse genutzt, um den Besucher auf eine andere Website umzulenken, so dass er gar nicht erst auf das eigentliche Ziel Zugriff nehmen kann. Vorteil ist erneut, dass in einer einzigen Daten zentral die Sperre eingetragen wird. Die Nachteile sind, dass hierfür auf dem Server mod_rewrite genutzt werden darf, was leider immer noch nicht überall üblich ist, und dass der Besucher auch hier i.d.R. mitbekommt, dass er umgeleitet wird und sich andere Methoden überlegen kann.

htaccess: mod_rewrite 2

Hier kommt nun die Lösung, die ich am effektivsten finde, denn damit bekommt der Besucher nicht sofort mit, dass nur er ausgesperrt wird:

  1. RewriteEngine on
  2. RewriteCond %{REMOTE_ADDR} ^(111.123.456.78)
  3. RewriteCond %{REQUEST_URI} !^wartung.html
  4. RewriteRule .* /wartung.html

Anstelle den Besucher auf eine dritte Website umzulenken, schicke ich Ihn auf eine sogenannte Wartungsseite. Dadurch bekommt er den Eindruck, dass die Website aktuell bearbeitet wird und ist nicht verwundert, dass er seine Spam-Aktivitäten nicht fortsetzen kann. Und wenn er dannbeim nächsten Besuch immer noch die Wartungsseite online hat, gibt er seine Besuche hoffentlich auf :)

Fazit:

Natürlich können diese Maßnahmen nicht immer 100%ig greifen. Immer dann, wenn der "Angreifer" seine IP unterdrückt oder wechselt, laufen diese Ideen leider ins Leere. Aber zumindest kann man mit wenig Aufwand zunächst reagieren und hoffen, dass der ungewollte Besucher sich ein leichteres Ziel sucht.

Kommentar erfassen