Artikel Datenbank Foren-Übersicht Artikel Datenbank
Computer - Internet - Multimedia
 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Bilderklau auf Webseiten verhindern

 
Neues Thema eröffnen   Neue Antwort erstellen    Artikel Datenbank Foren-Übersicht -> Webpage Design
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
GrayGhost
Site Admin


Anmeldedatum: 06.06.2007
Beiträge: 148
Wohnort: Achim (bei Bremen)

BeitragVerfasst am: 07.06.2007, 07:45    Titel: Bilderklau auf Webseiten verhindern Antworten mit Zitat

Bilderklau (Leeching) verhindern
Schlüsselworte:
bilder, bilderklau, leeching, verlinkung, hot link, deep link, bilder schutz, bilder schützen, links verbieten, traffic diebstahl, hotlink

Hey! Das gehört mir!!!

Viele Webseitenbetreiber sind sich der Problematik des sogenannten "hotlinkings" bewußt. Diese "hotlinkers" werden im Fachjargon auch "Leechers" genannt. Das sind, einfach ausgedrückt "Traffic-Diebe" die Bilder anderer Webseiten in ihre eigenen Seiten per Link einfügen.

All jenen, die keine Transferbeschränkung haben und nicht den Transfer per Gigabyte abrechnen müssen, könnte das ja egal sein. Für andere Sites kann dieses aber schon zum Ärgernis werden. Ganz abgesehen von der Tatsache, dass die eigenen Bilder auf anderen Webseiten dargestellt werden und die gewünschten Besucher auf der eigenen Seite ausbleiben, kann der Traffic bei einer Bildergalerie schnell ausufern, wenn die "hotlinkende" Seite viele Besucher hat. Nimm nur mal ein 100kbyte großes Bild welches auf einer Seite präsentiert wird, welches 1000 hits pro Tag hat. Da kommen schon 100 Mbyte zusammen, die du bezahlen musst ohne das nur ein Besucher auf deiner Seite war.

Wer also mit einer Traffic-Limitierung bei seinem Providor einen Vertrag hat, läuft Gefahr durch das hotlinking richtig zur Kasse gebeten zu werden.

Es gibt eine Reihe von Problemlösungen um das hotlinking zu unterbinden, aber fast alle haben auch negative Nebeneffeke.

Schnelle Lösungen sind nicht immer perfekt

Eine gängige Praxis ist, den Server anzuweisen alle Anfragen zurückzuweisen, bei denen der HTTP Referrer des Headers entweder nicht von deiner eigenen Seite stammt, oder wo der Referrer im Header fehlt. Damit können die User deine Bilder nur dann sehen, wenn sie deine Bilder auch über deine Seite aufrufen, oder wenn sie es schaffen, den Referrer zu unterdrücken (was eine Reihe von Sicherheitstools heutzutage auch schafft).

Ein zweiter Ansatz das Problem zu lösen ist, den Traffic der nicht zu deiner Seite gehört, umzuleiten, die z.B. den Surfer mit einer Seite empfängt, die ihn darüber informiert, dass das "hotlinking" nicht erwünscht ist. Das wäre die freundliche Art, du kannst dir natürlich auch etwas wesentlich drastischeres ausdenken.

Diese Methode hat aber auch seine Nachteile, da reguläre Links nicht mehr möglich sind. Jeder Browser sendet einen Referrer wenn jemand auf einen Link zu einem deiner Bilder klickt. Nun bist du in einer Zwickmühle. Einerseits möchtest du vielleicht einen Link du einem Bild zulassen (da darüber die Leute deine Webseite besuchen), andererseits möchtest du aber unterbinden, dass deine Bilder über einen hotlink direkt in andere Seiten eingebaut werden.

Ich werde dir eine Möglichkeit bieten, auch Seiten die Möglichkeit zu geben auf deine Bilder zu verlinken, wenn du es ausdrücklich erlaubst und die Verlinkung wird deine Seite öffnen. Damit hast du den Vorteil, dass die Links als Hits für deine Seite gewertet werden.

Was wollen wir also erreichen?

Mit PHP und "mod_rewrite", kannst du das Einbetten verbieten und gleichzeitig das Verlinken für alle erlauben, die Direktlinks für Bilderseiten erstellen, wie z.B. Google mit deren Bildersuche. Die hier vorgestellte Lösung fasst das Beste aller Möglichkeiten zusammen, und hier kommt jetzt die Lösung:

Alles was du brauchst ist ein Apache Server, der PHP unterstützt und die Option mod_rewrite aktiviert hat. Falls du dir über deine Servermöglichkeiten nicht im klaren bist, dann kontaktiere deinen Provider. Du kannst die PHP Konfiguration aber auch selber abfragen:

Für die Ermittlung der aktuellen PHP Version und Konfiguration reicht ein kleines Script. Schreibe die folgenen Zeilen in einen Text Editor.



Speicher die Datei und benenne sie in phpinfo.php um. Dann lade diese Datei in das Stammverzeichnis deiner Home Page. Aufrufen kannst du nun die PHP Informationen über deinen Browser, indem du die phpinfo.php über die Adresszeile aufrufst:

http://www.deinedomain.de/phpinfo.php

Schau im Abschnitt "apache" in die Rubrik "Loaded Modules". Hier muss mod_rewrite in der Liste stehen. Wenn nicht, dann bitte deinen Providor dieses Modul freizugeben.

Zunächt erstellst du eine Datei die du z.B. showpic.php nennst. In diese kopierst du den folgenden PHP Code:



Natürlich brauche ich dir nicht sagen, dass du die blau markierte Zeile anpassen musst. Die rote Angabe musst du so lassen wie sie ist. Das Datum soll in der Vergangenheit liegen.

Lasst uns nun mal einen Blick auf den oben stehenden PHP Code werfen. Die erste Zeile stellt sicher, dass der "Content-Type", der an den Browser gesendet wird, das Dokument als ein HTML Dokument identifiziert. Nach weiteren header Angaben folgt eine Abfrage ob die Variable $pic an das Script übergeben wurde. Ist dies nicht der Fall, so wird zum Ende gesprungen und abgebrochen.

Wie dem auch sei, da dieses Script niemals ohne diese Variable aufgerufen wird, ist dieser Eintrag nicht von grosser Bedeutung. Du kannst das oben angegebene Script nun schon mal testen.

Kopiere das Script in einen Texteditor, passe die blaue Zeile an und benenne die Datei wie folgt um: showpic.php
Ich nehme nun mal an, dass in deiner Server Root ein Bild mit Namen MeinBild.jpg liegt. Wenn du nun in die Adresszeile deines Browsers folgendes eingibst:
Code:
http://www.deinedomain.de/showpic.php?pic=MeinBild.jpg

dann sollte der Browser das Bild anzeigen, unter dem steht: Dies Bild gehört zur Webseite deinedomain.de Du kannst es mal auf meiner HP ausprobieren. Ich habe das Script direkt in die Root gelegt in der sich auch das Bild "floh.jpg" befindet. Der Testaufruf sieht folgendermaßenaus:

http://www.eddys-domain.de/showpic.php?pic=floh.jpg

Nun wirds interessant Smile

Ich gehe an dieser Stelle mal davon aus, dass du mit der Erstellung von .htaccess Dateien und der Implementierung auf einer Webseite vertraut bist.

Kopiere die folgenden Anweisungen in ein Textfile und lade es als .htaccess File auf deine Homepage:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} .*jpg$|.*gif$|.*png$ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !deineseite\.de [NC]
RewriteCond %{HTTP_REFERER} !partnerseite\.com [NC]
RewriteCond %{HTTP_REFERER} !google\. [NC]
RewriteCond %{HTTP_REFERER} !search\?q=cache [NC]
RewriteRule (.*) /showpic.php?pic=$1

Das eingehende PHP Script sorgt dafür, dass alle Links, die auf deine Homepage zeigen auch angezeigt werden, allerdings immer mit einem Hinweis auf den Ursprung des Bildes. Die Unart, Bilder direkt in die eigene Homepage einzubinden wird durch die htaccess Datei verhindert. Der Versuch ein Bild per <img> Tag einzubinden scheitert an den .htaccess Einträgen die im folgenden beschrieben werden.

RewriteEngine On
Diese Zeile ist notwendig, damit mod_rewrite seine Aufgabe ausführen kann.

RewriteCond %{REQUEST_FILENAME} .*jpg$|.*gif$|.*png$ [NC]
Dies ist die erste Bedingung, mit der du festlegst auf welche Dateiendungen mod_rewrite reagieren soll. Damit ist sichergestellt, dass nur hotlinks auf Bilder verhindert werden. Du kannst die Regel aber auch auf weitere Dateitypen wie .swf oder .mp3 ausweiten.

RewriteCond %{HTTP_REFERER} !^$
Die zweite Bedingung besagt, dass der Referrer nicht fehlen darf. Damit ist sichergestellt, dass auch die Besucher deiner Seite, die den Referrer nicht übertragen, deine Bilder sehen können.

RewriteCond %{HTTP_REFERER} !deineseite\.XXX [NC]
RewriteCond %{HTTP_REFERER} [color=blue]!deineseite\.XXX [NC]

Diese beiden Zeilen erlauben das Verlinken von deiner eigenen Seite und von Seiten aus, die du authorisieren willst. Das du deine eigene Seite authorisierst ist wichtig, da du sonst nicht mehr in der Lage bist, innerhalb deiner Homepage links auf deine eigenen Bilder zu setzen.

RewriteCond %{HTTP_REFERER} !google\. [NC]
RewriteCond %{HTTP_REFERER} !search\?q=cache [NC]

Diese beiden Befehle lassen es zu, das Leute, die Google Cache und Google Image Search verwenden, deine Bilder sehen können. Wenn du nicht willst, dass Leute deine Bilder über Google finden, dann lass die Zeilen weg.

RewriteRule (.*) /showpic.php?pic=$1
Diese letzte Regel leitet die Anfrage zum Bild an /showpic.php?pic=$1 um ($1 ist das gewünschte Bild).

Ich habe auf meiner Test-Domain eine Seite eingestellt, die das oben beschriebene Verfahren demonstriert.

http://ggnet.gg.funpic.de/bilderklau_demo.htm

MfG
Erhard Olszok aka GrayGhost
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen Yahoo Messenger
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Artikel Datenbank Foren-Übersicht -> Webpage Design Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de