Howto: Anti Hotlinking

18. Jan 2007 12:04 (bearbeiten)


Was ist Hotlinking?

Hotlinking oder Inline Linking bezeichnet das Einbetten von Medien in eine Webseite, die auf einem anderen Host als die sie enthaltende Seite gespeichert sind. Oft handelt es sich bei den Medien um Bilder, aber auch das Referenzieren von Sound, Videos oder Text ist üblich.

Quelle: Wikipedia

Etwas einfacher formuliert:

Möchte ich beispielsweise das Firefox Logo von der offiziellen Webseite auf meiner eigenen Seite anzeigen, könnte ich dies unter Verwendung folgender URL tun:

http://www.mozilla.org/images/feature-logos1.png

Ich wuerde also die Grafik auf meiner Seite anzeigen, der Browser lädt die Grafik allerdings direkt vom Mozilla Server und verursacht dort (je nach Besuchermenge auf meiner Seite) nicht unerheblichen Datenverkehr (Traffic) auf dem Mozilla Server.

Warum sollte man nicht heiß verlinken?

1.) Es kostet die Person Geld, die die Grafik auf seinem/ihrem Server hostet. Diese Person bekommt dann als Dank höheren Traffic, ohne jedoch mehr Besucher zu erhalten. Dass das nicht fair ist, sollte eigentlich jedem klar sein.

2.) Sollten die Mozilla Jungs und Mädels irgendwann einmal auf die Idee kommen, und Ihre Grafik nicht mehr

"feature-logos1.png"

sondern beispielsweise

"feature-logo2007.png"

nennen, verlinkt die Hotlinking Seite (im o. g. Beispiel also meine Seite) auf eine nicht existente Grafik. Das sieht natürlich unschön aus und wirkt auch nicht gerade professional.

Was noch passieren kann, wenn sich Webmaster einen Scherz daraus machen, kann man hier bewundern.

Nun, wie verhindert man so etwas?

Auf der Webseite Alt Lab.com wird folgender Weg über die htaccess Datei beschrieben.

Dazu erstellt man eine neue, leere Datei mit den Namen ".htaccess" und lädt diese in das Hauptverzeichnis (Root-Verzeichnis) seiner Webseite (Hinweis: Wichtig ist der Punkt vor "htaccess". Unter Windows kann man diesen Punkt nur über die Kommandozeile hinzufügen).

Inhalt der .htaccess Datei:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?meineseite\.de/ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule .*\.(jpg|jpeg|gif|bmp|png)$ - [F]

Was macht das Listing?

Die erste Zeile startet das sogenannte Rewrite.

Die zweite Zeile betrifft alle Zugriffe der eigenen Seite (meineseite). Der Zusatz "[NC]" steht für "No Case" und bedeutet, dass Groß- und Kleinschreibung ignoriert werden können.

Die dritte Zeile sagt dem Server, dass leere Referer erlaubt sind und die letzte Zeile setzt die Regel für alle Dateien mit den Endungen *.jpg, *.jpeg, *.gif, *.bmp und *.png in Kraft.

Ruft nun ein fremder Server (Webseite) eine Datei, die den oben genannten Bedingungen entspricht auf, erhält diese Server die Fehlermeldung "403 Forbidden". Es wird also entweder diese Fehlermeldung ausgegeben, oder einfach keine Grafik angezeigt.

Anpassungen:

Was man beim obigen Listing ändern muss, ist das Wort "meineseite" in den Namen der URL der eigenen Seite (in meinem Fall dahead) sowie die Domain ".de" (beispielsweise in ".com" oder ".info").

Test:

Vor einem Test ob das oben genannte Listing funktioniert, sollte der Browser Cache geleert werden. Damit wird sichergestellt, dass die zu testende Datei nicht aus Versehen aus dem Zwischenspeicher des Browsers von der eigenen Festplatte geladen wird.

Nachdem dies erledigt ist, kann über die o. g. Webseite Alt Lab.com der Aufruf getestet werden.

Tags ¦ , und