Heiße Links
Martin Mißfeldt vom Tagseo-Blog hat gerade einen Artikel zum leidigen Thema Bilder-Hotlinks veröffentlicht. Dort erklärt er noch einmal recht anschaulich, was Hotlinks sind, wie sie funktionieren und wie Google damit umgeht.
Auch ich habe mich schon öfter mit dem Thema beschäftigt.
Zur technischen „Abwehr“ von Hotlinks gibt es einige Möglichkeiten, die ich im Artikel „Bilderdiebe – was ich dagegen tue“ bereits erläutert habe. Im wesentlichen habe ich das auch so beibehalten, technisch nur etwas verfeinert.
Bilder-Hotlink Abwehr
Ich fahre eine Black-List Strategie, daß heißt, Hotlinks werden nur von bestimmten Domains mit einem Ersatzbild behandelt.
So sieht der entsprechende Code z.Z. in der .htaccess-Datei aus.
# Bilderdieb RewriteCond %{HTTP_REFERER} ^https?://(([^\.]+?\.)?([^\.]+?\.)?[^\.]+?)/ [NC] RewriteRule .* - [E=DOM_REFERER:%1] RewriteCond %{REQUEST_FILENAME} -f RewriteCond %{REQUEST_URI} !^/images/ersatzbild.png$ RewriteRule \.(jpg|gif|png)$ - [NC,C] RewriteCond %{ENV:DOM_REFERER} \.tk$ [NC,OR] RewriteCond %{ENV:DOM_REFERER} \.xyz$ [NC,OR] RewriteCond %{ENV:DOM_REFERER} \.cf$ [NC,OR] RewriteCond %{ENV:DOM_REFERER} mydealz\.de$ [NC,OR] RewriteCond %{ENV:DOM_REFERER} example\.com RewriteRule . /images/ersatzbild.png [T=image/png,L]
Da ich in erster Linie bestimmte Domains (auch TLDs) ausschließen will, extrahiere ich zunächst den Domain-Namen aus dem Referrer und speichere ihn in einer Umgebungsvariable (Zeile 1 und 2).
Nur wenn es das Bild gibt (Zeile 3), es nicht das Ersatzbild ist (Zeile 4) und es überhaupt ein Bild ist (Zeile 5), werden die nachfolgenden Regeln abgearbeitet.
Es folgt die Liste der nicht erlaubten Domains bzw. Top-Level-Domains (TLD). Da der massive Hotlink-Spam zur Zeit vorzugsweise von .tk, .xyz und .cf TLDs kommt, stehen diese in der List. Die Domain mydealz.de habe ich nur zu Testzwecken aufgenommen. So kann ich sehen, ob meine Hotlink-Abwehr funktioniert. :-)
In der letzten Zeile wird dann das Ersatzbild ausgeliefert. Hier wird der Bildtyp auf png geändert, weil mein Ersatzbild ein PNG-Bild ist.
Der Haken an der Sache
Die Sache hat nur einen Haken. Die großen Hotlink-Farmen interessiert es nicht, was da letztendlich für Bilder auf ihren Spam-Seiten angezeigt werden. Ich vermute, daß die Seiten automatisch oder teilautomatisch aus den Bildern der Bildersuchergebnisse erstellt werde. Insofern bringt hier die „Abwehr“ per .htaccess herzlich wenig.
Aber egal, falls dann doch mal jemand auf die Spam-Seite kommt, sieht derjenige wnigstens nicht meine Bilder und es sieht mit dem Ersatzbild zumindet komisch aus. :-)
Hotlinks mit der Google Bildersuche finden
Mit einigen Abfrage-Parametern kann man mit der Google-Bildersuche Hotlinks auf Bilder finden.
Für die Bildersuche ergibt die Kombination
inurl:http://seite-a.de -site:seite-a.de
Treffer mit einem Bild von Seite A, welches nicht auf Seite A zu sehen ist. Das ist bei Hotlinks und Links der Fall.
Man kann aber auch gezielt nach Hotlinks von einer bestimmten Seite suchen:
inurl:http://seite-a.de site:seite-b.de
Damit werden Bilder von Seite A angezeigt, die von Seite B gehotlinkt bzw. gelinkt werden.
Für eine schnellere Übersicht könnte man die Ausgabe auf das alte Layout mit dem Parameter sout=1 erzwingen, zudem liefert die Abfrage in Abhängigkeit von der Sprache und den SafeSearch-Einstellungen bisweilen andere Ergebnisse.
Damit ihr euch die kompliziert Abfrage nicht per Hand zusammenbasteln müßt, habe ich ein Formular mit etwas Javascript drum herum erstellt. Damit kann die Hotlinksuche bequem erstellt werden.
Das Hotlink-Suchformular
Damit das Formular sichtbar ist und funktioniert, muß Javascript aktiviert sein.
In Domain kommt die Ursprungsseite der Bilder, falls es eine Subdomain ist, muß diese mit angegeben werden (z.B. images.seite-a.de).
Bei Weitere Seiten kommen die mit Leerzeichen getrennten Namen von Seiten rein, für die mit (●) ausschließen keine Hotlinks angezeigt werden sollen. Ist (●) einschließen ausgewählt, wird die Logik umgedreht. Es werden dann nur Hotlinks von den angegebenen Seiten angezeigt.
Die Optionen sind selbsterklärend, würde ich sagen.
Auf [Los] gehts los. Es wird ein neues Browserfenster mit der erstellten Google-Suche geöffnet. Falls das Fensteröffnen in den Browsereinstellungen nicht erlaubt ist, kann auch der links eingeblendete Link „Hotlinks finden“ angeklickt werden.
Ich will auch einen wesentlichen Nachteil der inurl:-Suche gegenüber der imagesite:-Suche nicht verschweigen. Die site:– bzw. frühere imagesite:-Abfrage beziehen sich tatsächlich auf den Domainnamen der Seite. Die inurl:-Abfrage ist da, wie der Name auch erwarten läßt, deutlich größzügiger.
Die Abfrage
inurl:http://seite-a.de
findet auch Bilder wie z.B.
http://seite-b.de/screenshot/?s=http://seite-a.de
Das ist natürlich kein Hotlink oder Link zur Ursprungsseite. Aber solche Treffer muß man dann einfach ignorieren.
Und was macht Ihr so gegen Hotlinks, wenn Ihr sie gefunden habt?
Was wäre denn, wenn Du als Ersatzbild ein hartes Рοrnοbild unterschieben würdest? Oder irgendwas anderes illegales?
Würden dann nicht evtl. die Hotlinker jedenfalls in den Jugendschutz-Filter kommen?
z.B. ein Bild von Getty, welches urheberrechtlich geschützt ist, und wogegen Getty o.a. vorgehen?
Hi,
Also ich habe das etwas simpler gelöst:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mein-projekt\.de(/.*)?$ [NC]
RewriteRule \.(gif|jpg|GIF|JPG)$ http://www.mein-projekt.de/assets/trash.jpg [R,L]
Grins wenn die o.g. Url stört bitte einfach löschen!
Bei den Hotlinkern wird mit dieser Lösung eben ein äußerst unschöner Abfalleimer gezeigt. Ranken tun die damit für die Keywords trotzdem.
Habt Ihr eine Idee wie lange so eine Abwehrstrategie benötigt um wirksam zu sein oder ob die Besucher für immer im nichts verschwunden bleiben?
@David
Schwer zu sagen, ich denke aber, eher nicht. Google „sieht“ ja das Ersatzbild nicht, also von Google wird da wohl keine Maßnahme zu erwarten sein.
Außerdem ist das Bild selbst ja dann unter meiner Bild-URL zu sehen, daß könnte dann auch auf mich zurückfallen. Wäre mir zu heiß.
@Helmut
Klar, die White-List ist etwas einfacher und Übersichtlicher, aber das ist halt nicht meine Strategie.
Und wie lange es benötigt, ist schwer zu sagen. Gegen die großen Hotlink-Farmen hilft es eh nicht.