Gut, das Thema des aktuellen Webmasterfridays ist zwar mit „Was tun bei Urheberrechtsverstößen?“ deutlich weiter gefaßt, als das es dabei nur um Bilder und Fotos ginge.
Der „Aufhänger“ war aber wohl der Bilderklau beim TagSeoBlog und so will ich mich hier auch nur auf dieses Problem beziehen.
Von Bilderdieben und Raubkopierern
Im richtigen Leben ist das alles klar und weitestgehend eindeutig definiert. Geht jemand in eine Gemäldegalerie, hängt dort heimlich ein Bild ab und nimmt es mit nach Hause, so ist das Diebstahl und derjenige ein Bilderdieb. Tut er so etwas zudem unter Anwendung von Gewalt oder Androhung von Gefahr für Leib oder Leben von Personen, so ist das Raub. Was nun genau ein Raubkopierer macht, ist mir allerdings nicht klar. Ich könnte mir aber vorstellen, daß das jemand ist, der z.B. eine bestimmte Ablauf eines bekannt gewordenen Raubes nachahmt, mithin also den Raub in der Vorgehensweise kopiert :-)
Beiden Delikten, Diebstahl und Raub, ist gemeinsam, daß es sich um die Wegnahme einer fremden beweglichen Sache handelt. Deshalb wird ein Diebstahl meist auch recht schnell bemerkt, denn der entwendete Gegenstand, z.B. das Gemälde, ist ja nicht mehr da.
Bildkopien und Hotlinking
In der digitalen Welt sieht das nun etwas anders aus, auch wenn hier unzutreffenderweise die Begriffe aus dem richtigen Leben verwendet werden. Denn normalerweise wird ein Bild ja nicht „entwendet“, so daß es plötzlich beim Besitzer fehlt, sondern nur eine Kopie angefertigt und an anderer Stelle verwendet (Bildkopie). Das führt auch dazu, daß die unrechtmäßige Verwendung eines Bildes erst sehr spät oder oft auch gar nicht bemerkt wird. Meist kommt so etwas nur eher zufällig ans Tageslicht.
Besonders im Internet wird oft noch nicht mal eine Kopie eines Bildes angefertigt, sondern das Bild einfach direkt von der fremden Seite eingebunden (Hotlink). Dadurch wird nicht nur das Bild möglicherweise unberechtigt verwendet, sondern auch noch der Server des „Bestohlenen“ belastet und ein zusätzliches Datenaufkommen erzeugt. Andererseits sind diese Hotlinks recht schnell zu erkennen, wenn man sich als Webmaster ab und zu die Serverlogfiles daraufhin ansieht.
Urheberrecht
Die oben genannten Bildkopien bzw. das Hotlinking sind also kein Diebstahl oder gar Raub, sondern Verletzungen des Urheberrechtes.
Die wichtigsten Punkte im Urheberecht sind wohl Veröffentlichungs-, Verwertungs- und Folgerechte die es dem Schöpfer eines Werkes erlauben, allein darüber zu bestimmt, ob, wann, wo und in welcher Form sein Werk der Öffentlichkeit zugänglich gemacht und wie es im weiteren verwertet, verbreitet und vervielfältigt wird.
Meine Bilder
Im Allgemeinen habe ich nichts dagegen, wenn meine hier oder bei Putzlowitsch veröffentlichten Bilder von Dritten verwendet werden. Sei es nun in Communities, Foren oder anderen Blogs. Auch mit Hotlinks habe ich im Zeitalter von „unbegrenztem“ Traffic keine Probleme, ganz im Gegenteil, bin ich doch darüber schon auf die eine oder andere interessante Seite gestoßen.
Wenn nun aber meine Bilder dreist auf irgendwelchen Spam-Seiten landen oder in einem mir sonst wie nicht genehmen Kontext (z.B. rechtsradikale Foren) erscheinen, dann habe ich schon etwas dagegen. Da es bisher meist nur Hotlinks waren (bei Kopien habe ich es möglicherweise nur noch nicht bemerkt), gehe ich dagegen mit einer technischen Maßnahme vor.
Bilder-Hotlink unterbinden
Normalerweise sendet der Webbrowser eines Nutzers beim Aufruf einer Seite oder eines Bildes die Information mit, woher der Aufruf kommt. Bei einem Link ist das die verlinkende Seite oder bei einem sichtbaren Bild eben die Seite, auf der das Bild angezeigt wird. Diese Information, den so genannten REFERER kann der Webserver auswerten und gegebenenfalls bestimmte Aktionen ausführen. Das Ganze läuft über das Servermodul mod_rewrite und wird über die Datei .htaccess konfiguriert. Damit kann man dem Webserver z.B. sagen, daß wenn die Seite xyz aufgerufen wurde, er doch stattdessen bitte die Seite abc ausliefern oder einen Fehlercode zurückgeben soll.
Die einfachste und zugleich radikalste Variante, dem Hotlinking zu begegnen, ist folgender Dreizeiler:
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?schnurpsel.de/.*$ [NC]
RewriteRule \.(gif|jpe?g|png)$ - [F,L]
So oder ähnlich findet man das auf vielen Webseiten als Empfehlung, wie man sich gegen das Hotlinking schützen kann. Die Strategie ist hierbei, allen die Zugriffe auf Bilder zu verbieten (3. Zeile), und nur Zugriffe von der eigenen Seite zuzulassen (2. Zeile). Die 1. Zeile nimmt etwas Radikalität wieder raus, denn auch wenn der Referer leer, also nicht bekannt ist, woher der Aufruf kam, werden die Bilder angezeigt. Ohne Zeile eins würde man z.B. alle Suchmaschinen-Bots aussperren und auch die User, deren Browser den Referer unterdrückt.
Unberechtigte Zugriffe werden hier vom Webserver mit dem Fehlercode „403 Forbidden“ quittiert, der Browser zeigt dann für ein Bild nur den Alternativtext (falls vorhanden) und eventuell ein Fehlersymbol an. Die Antwort ist klar und deutlich, der Zugriff ist verboten und wird verweigert.
Meine Hotlink-Strategie
Ich bin da nicht ganz so konsequent sondern fahre eine andere Strategie. Ich erlaube prinzipiell allen den Zugriff und schließe nur unerwünschte Seiten aus. Ich will ja nicht die vielen netten User von Jappy, Schnappy und Zappy daran hindern, sich gegenseitig ihre „Gästebücher“ mit Bildern vollzukippen :-)
Bei mir sieht die Hotlinkabwehr deswegen etwas komplizierter aus:
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_URI} !^/images/1x5120.gif$
RewriteRule \.(jpg|gif|png)$ - [NC,C]
RewriteCond %{HTTP_REFERER} hotlink\.schnurpsel\.de [NC,OR]
RewriteCond %{HTTP_REFERER} bilderdieb\.schnurpsel\.de [NC,OR]
RewriteCond %{HTTP_REFERER} xxxx-yyyy\.zz
RewriteRule . /images/1x5120.gif [T=image/gif,L]
In der 1. Zeile wird geprüft, ob die angeforderte Datei überhaupt existiert. Falls nicht, soll nicht die Hotlink-Abwehr greifen, sondern die normale Fehlerbehandlung ablaufen.
Da ich nicht einfach den Statuscode 403 zurückliefern will, sondern ein Ersatzbild, wird in der 2. Zeile geprüft, ob nicht gerade das Ersatzbild angefordert wird. Dann darf die Hotlink-Abwehr nicht erneut anspringen, sonst gäbe es eine prima Endlosschleife.
Die 3. Zeile selektiert nur die Zugriffe, die ein Bild mit einer der angegebenen Datei-Erweiterungen betreffen, hier also jpg-, gif- und png-Bilder. Die Liste kann natürlich beliebig erweitert werden. Dabei kann man ein klein wenig optimieren, in dem man den Bildtyp nach der Reihenfolge ihrer Häufigkeit angibt. Da bei mir die meisten Bilder vom Typ jpg sind, brauchen die restlichen Einträge dann nicht mehr überprüft werden.
Mit den Zeilen 1 bis 3 werden Vorbedingungen geprüft und nur wenn die angeforderte Datei existiert, nicht das Ersatzbild ist und dem richtigen Dateityp entspricht, wird der Rest abgearbeitet.
Die Zeilen 4, 5 … n-1 enthalten die eigentlichen Bedingungen, wann ein Hotlink als böse einzuordnen ist. Hier wird auf den oben schon angesprochenen Referer Bezug genommen und jede Seite eingetragen, von der Hotlinks unerwünscht sind. Auch hier kann man etwas optimieren, indem man die häufigsten Seiten an den Anfang der Liste stellt. Man kann hier aber auch andere Bedingungen einsetzen, z.B. IP-Adressen. Eine ausführliche Beschreibung zum Apache-Rewrite-Modul findet man hier.
Die letzte Zeile n gibt dann nur noch das Ersatzbild aus, bei mir ein transparentes GIF-Bild mit einem Pixel Breite aber über 5000 Bildpunkten Höhe. Zu sehen ist es nicht, aber es reißt die Seite an der Stelle weit auseinander, ja nach dem, wie das Bild auf der Hotlinkseite eingebunden ist. Außerdem liefere ich, egal was für ein Bildtyp angefordert wird, immer das Gif-Bild aus. Deshalb wird noch der richtige Content-Type (image/gif) gesetzt.
So sieht es aus
Zur Demonstration habe ich mal zwei böse und eine gute Sub-Domain erstellt, damit man sehen kann, wie sich das Ersatzbild auswirkt.
Die gute Seite:
Der alte Hut
Die bösen Seiten:
Bilderdieb
Hotlink
Hinweis zu den bösen Seiten: Wenn man sich zuerst die gute Seite angesehen hat, dann wird auf einer der bösen Seiten möglicherweise trotzdem der Hut und nicht das Ersatzbild angezeigt. Das liegt am Caching durch den Browser. Man muß dann nochmal das Neuladen der Seite erzwingen, beim Firefox z.B. mit Shift+Reload-Button oder Strg+F5.
Vorerst reicht mir meine Hotlink-Abwehr per Ersatzbild für böse Seiten, die Seiten und Abrufe sind allerdings auch recht überschaubar. Problematisch wird es, wenn die Liste mit den Seiten gar zu lang wird, denn die muß der arme Webserver immer von oben bis unten abarbeiten. Das könnte sich dann mit schlechten Antwortzeiten und höherer Serverlast bemerkbar machen.
Nachtrag: Ich habe es nicht extra erwähnt, aber damit die Regeln überhaupt abgearbeitet werden, muß normalerweise die Rewrite-Engine eingeschaltet werden. Zudem sollte man prüfen, ob das Modul mod_rewrite überhaupt zur Verfügung steht. So sieht dann meine Variante komplett aus:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_URI} !/bilder/bild-foto/die-besten-bilder-der-welt.jpg$
RewriteRule \.(jpg|gif|png)$ - [NC,C]
RewriteCond %{HTTP_REFERER} bilderr\.com [NC,OR]
RewriteCond %{HTTP_REFERER} pictures-images\.com [NC,OR]
RewriteCond %{HTTP_REFERER} freeimages-de\.bloggum\.com [NC,OR]
RewriteCond %{HTTP_REFERER} zaggla\.com [NC]
RewriteRule . /bilder/bild-foto/die-besten-bilder-der-welt.jpg [T=image/jpg,L]
</IfModule>
Dieser Block sollte noch vor allen anderen Rewrite-Blöcken stehen, also auch vor den WordPress-Permalink-Eintrag.