Hey, just a heads-up that this content is based on an automatically imported version from our old CMS. If the formatting isn’t perfect, I’m sorry about that.
Translation
This original post is written in german 🇩🇪, a rough Translation:
Hotlinking means other sites embed my images/videos, causing traffic without real visitors. I use Apache to block this. The browser requests files, not the foreign site, so IP blocking is useless. Solution: check the HTTP Referer; allow empty or my domain, deny others. Not perfect, some software strips referers.
Original German Content
Was zur Hölle ist Hotlinking?
Unter “Hotlinking” versteht man das fremde Verlinken von Inhalten, in diesem Fall eben Bildern. Das Web besteht heutzutage zu großen Teilen aus Bilder und Videos oder besser gesagt multimedialen Inhalten. Diese treiben natürlich auch den Traffic in die Höhe. Wenn man nicht den Luxus hat auf Traffic kein Auge werfen zu müssen, so kann es sich schnell bemerkbar machen, wenn die eigenen Bilder bei der Google Bildersuche hoch gerankt werden. Dies bedeutet jede Menge Traffic ohne wirklich an der Seite interessierte Personen mitzubringen.
Aber auch bei Seitenbetreibern, die nicht nach “Traffic == Geld” gehen, kann es unerwünscht sein, wenn fremde Webseiten sich mit den eigenen Bildern oder schlimmer Videos schmücken. Dies gilt es hier nun mit einfachen Mitteln zu unterbinden.
Der Apache dein Freund und Helfer
Wie so viele im World Wide Web setze ich auch auf den Apache als Webserver. Daher beschränke ich das Tutorial darauf.
Nun, wie in der ersten Grafik zu sehen ist, ist es ja immer der User Browser, der die Daten bei unserem Webserver anfordert, nicht die fremde Webseite selbst. Daher ist es ein falscher Lösungsansatz, die IP der fremden Seite zu blocken. Dies bringt uns in diesem Vorhaben nicht zum Ziel. Die Fremdseite stellt unser Bild oder unseren Multimedia-Inhalt also z.B. via normalem IMG-Tag dar. Der “Trick” ist nun einfach, den vom Browser übermittelten Referer auszulesen und diesen auszuwerten. Im Normalfall sollte dieser entweder a) leer sein oder b) die Domain unserer eigenen Seite enthalten. Alles andere wären unerwünschte Anforderungen. Klar ist dies nicht die ultimative Sicherheit, da einige Software-Produkte, die sich “Internet Security Lösungen” schimpfen, eine Funktion haben, den Referer zu filtern. Dies hilft aber dem Betreiber der fremden Webseite nichts, da er in der Regel nicht davon ausgehen kann, dass alle seine Besucher solch eine Software verwenden.
Wie in Bild #2 zu sehen ist, übernimmt unser Webserver hier nun die Filterarbeit. Wenn ein “fremder” Verweis erkannt wird, haben wir nun die Möglichkeit, diesen einfach zu unterbinden oder alternativ etwas anderes zurückzuliefern. Entscheiden wir uns für letzteres, würde der Besucher der fremden Seite anstatt des schönen Fotos nun nur noch ein Bild mit der Aufschrift “Dieser Aufruf ist nicht gestattet, besuchen Sie MeineSeite.de” sehen. Blöd für den Betreiber. Nun bleibt ihm nur die Möglichkeit, das Bild zu kopieren und auf seinem Webserver zu packen, womit er, sofern ich dies nicht ausdrücklich erlaube, allerdings eine schwerwiegende Copyright-Verletzung eingeht.
Nun gibt es aber auch gute Hotlinker im Internet, die man gewähren lassen möchte. Dies sind z.B. Seiten eines Kollegen oder eine weitere Homepage von einem selbst, oder auch Image-Indexer wie z.B. Google Bildersuche. Dies müssen wir dann als Ausnahme genehmigen.
Als einfaches Beispiel für oben genanntes lässt sich eine Hotlink-Protection wie folgt erzeugen. Man fügt im Verzeichnis, in dem auf der eigenen Webseite die Bilder liegen, eine .htaccess
Datei ein und ergänzt diese mit der Anweisung:
# HOTLINK PROTECTION
RewriteEngine on
RewriteCond %{HTTP_REFERER} .
RewriteCond %{HTTP_REFERER} !^[http://([^.]+.)?wwcl](http://([^.]+.)?wwcl). [NC]
RewriteCond %{HTTP_REFERER} !^[http://([^.]+.)?wcg-europe](http://([^.]+.)?wcg-europe). [NC]
RewriteCond %{HTTP_REFERER} !^[http://([^.]+.)?planetlan-gmbh](http://([^.]+.)?planetlan-gmbh). [NC]
RewriteCond %{HTTP_REFERER} !^[http://([^.]+.)?dcmm](http://([^.]+.)?dcmm). [NC]
RewriteCond %{HTTP_REFERER} !^[http://([^.]+.)?nuxnux](http://([^.]+.)?nuxnux). [NC]
RewriteCond %{HTTP_REFERER} !^[http://([^.]+.)?solariz](http://([^.]+.)?solariz). [NC]
RewriteCond %{HTTP_REFERER} !^[http://([^.]+.)?planetlan](http://([^.]+.)?planetlan). [NC]
RewriteCond %{HTTP_REFERER} !^[http://([^.]+.)?maxga](http://([^.]+.)?maxga). [NC]
RewriteCond %{HTTP_REFERER} !^[http://([^.]+.)?localhost](http://([^.]+.)?localhost) [NC]
RewriteCond %{HTTP_REFERER} !google. [NC]
RewriteCond %{HTTP_REFERER} !search?q=cache [NC]
RewriteCond %{REQUEST_URI} !^/stophotlink.gif$
RewriteRule .(gif|jpg|png)$ /stophotlink.gif [NC,L]
Wie man sieht, sind hier 11 Seiten als Ausnahme definiert. Alles andere wird umgeleitet auf die Datei stophotlink.gif
.
Viel Spaß damit.