Traffic-Klau per .htaccess verhindern

veröffentlicht am 05. April 2010

Ich bin in den letzten Tagen irgendwie auf das Thema Traffic-Klau gekommen und dachte mir, dass es dafür doch eine einfache Lösung geben müsste.

Bei Google habe ich dann nach einer passenden Lösung für mod_rewrite gesucht. Leider waren alle Lösungen, die ich gefunden habe, relativ begrenzt und nur auf den Traffic-Klau bei Bildern spezialisiert. Deshalb habe ich selber ein paar mod_rewrite-Regeln zusammengestellt.

Zunächst stelle ich euch eine Lösung vor, mit der man eine komplette Domain gegen Traffic-Klau schützt. Das ist nur sinnvoll, wenn ihr beispielsweise eine separate Domain für Downloads eingerichtet habt. Wie man bestimmte Ordner oder Dateien und damit auch WordPress gegen Traffic-Klau schützen kann, erkläre ich weiter unten. Für das bessere Verständnis solltet ihr aber alles durchlesen und nicht nur blind copy-and-paste benutzen.

Komplette Domain schützen

Um eine komplette Domain zu schützen, schreibt ihr folgendes in die entsprechende .htaccess-Datei:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^(.*?)patrick-gotthard\.de(/.*)?$ [NC]
RewriteRule ^.* - [F]

Damit ihr das Ganze besser versteht, zerlege ich den Eintrag mal in seine Bestandteile:

Bestandteil Beschreibung
RewriteEngine on mod_rewrite aktivieren (muss vom Provider erlaubt sein)
RewriteCond Dies ist eine Bedingung, die ausgewertet wird, bevor die eigentliche Regel (RewriteRule) ausgeführt wird
RewriteRule Wenn eine Bedingung (RewriteCond) erfüllt wird, wird diese Regel ausgeführt
%{HTTP_REFERER} Diese Variable gibt an, woher der Besucher kommt
!^$ Der Besucher hat seine Herkunft nicht übermittelt. Diese Angabe ist wichtig, da Suchmaschinen und bestimmte Besucher keinen Referer senden
(.*?)patrick-gotthard\.de(/.*)? Dieser Ausdruck erlaubt jeglichen Zugriff ausgehend von techspread.de. Hierbei ist es egal, welches Protokoll (z.B. http:// oder https://) oder welche Subdomain (z.B. www.) als Referer übermittelt wurde. Natürlich musst du hier deine Domain eintragen
[NC] Bei [NC] wird die Groß- und Kleinschreibung für den davor stehenden Ausdruck ignoriert
^.* Sämtliche Datenzugriffe werden geprüft
[F] [F] sendet für jeden unerlaubten Zugriff ein Forbidden (Verboten) und liefert die angeforderte Datei nicht aus

Bestimmte Ordner oder Dateien schützen

Anders als in der oben beschrieben Methode, darf man bei Webseiten nicht alles sperren, denn so könnte niemand mehr deine Seite besuchen, wenn er von einer anderen Seite kommt. Deshalb muss die RewriteRule angepasst werden.

Anhand des Upload-Verzeichnisses von WordPress zeige ich euch, wie man einzelne Ordner gegen Traffic-Klau schützt:

RewriteRule ^(.*)/wp-content/uploads/(.*)$ - [F]

Wenn du mehrere Ordner schützen möchtest, musst du einfach pro Ordner eine weitere Zeile hinzufügen, also zum Beispiel:

RewriteRule ^(.*)/ein-anderer-ordner/(.*)$ - [F]

Möchte man hingegen nur bestimmte Dateitypen auf der ganzen Domain gegen Traffic-Klau schützen, trägt man folgende RewriteRule ein:

RewriteRule \.(exe|zip|jpg)$ - [F]

Möchtest du auch andere Dateitypen schützen, musst du einfach weitere Dateiendungen eintragen.

Schlussbemerkung

Man sollte natürlich immer ganz genau überlegen, wer denn nun Zugriff bekommen soll und wer nicht. Wollt ihr zum Beispiel eine Datei per Link in einem andere Forum verfügbar machen, müsst ihr dafür eventuell euren .htaccess-Eintrag anpassen. Bei falscher Anwendung können auch potentielle Besucher ausgesperrt werden. Deshalb rate ich euch, euch vorher genau mit der Materie vertraut zu machen, damit ihr keine Besucher verliert! Eine gute Quelle für alles rund um mod_rewrite ist zum Beispiel www.modrewrite.de.

Kommentare

Sehr schöner Artikel, Traffic-Klau ist wirklich eine ärgerliche Sache… :D

Kommentar #1 von Christian am 06. April 2010


Danke für die Blumen =D

Kommentar #2 von Patrick am 06. April 2010


Ich lass dir gleich auch noch einige Blumen hier *lach*

Echt super geschrieben, muss ich auch bei mir testen :)

Kommentar #3 von Jeffrey am 06. April 2010


Hinterlasse einen Kommentar