Inline Links mit htaccess aussperren [UPDATE]

5. April 2009 von Sven Kubiak
hyperlink-wikipedia

Seit dem meine Domains wieder Domainfactory zu Hause sind, und ich wesentlich weniger Freitraffic zur Verfügung habe, kontrolliere ich den Traffic mehr oder wenig regelmäßig. Obwohl die Seitenaufrufe auf den Domains stagnieren ist der verursachte Traffic in den letzten Monaten erheblich angestiegenden. Da ich mir dies nicht erklären konnte, war ein tieferer Einblick in die Statistiken notwendig. Dabei viel mir auf, dass einige der größten Traffic-Verursacher von sog. Inline-Links kommen. Bei Inline-Links werden Inhalte aus der eigenen Webseite in fremeden Seiten aufgerufen. So findet man im Quelltext der fremden Seite Aufrufe wie etwa:

http://www.svenkubiak.de/wp-content/upload/2009/04/04/meinbild.jpg

Bei jedem Aufruf der fremden Webseite wird dann das Bild von der eigenen Seite nachgeladen, als wenn es direkt auf der fremdem Webseite lagern würde. Unabhängig davon, dass Inline-Linking seit neuster Rechtssprechung rechtswidrig sind, verursachen solche Links vor allem eins: Traffic. Denn im Gegensatz zur eigenen Domain, kann man die Aufrufe nicht genau kontrollieren bzw. ein bisschen steuern. So hatte ein Bild auf meinem Blog mehrere Tausend Aufrufe, die von einer Kunddels Profilseite kamen.

Glücklicherweise lassen sich Inline Links mit einer einfacher Erweiterung der .htaccess Datei verhindern. Hierzu folgenden Code in die .htaccess Datei einfügen bzw. diese ergänzen.

# BEGIN BLOCK INLINE LINKS
<ifmodule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?MEINEDOMAIN.de/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?google.de/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?google.com/.*$ [NC]
RewriteRule \.(flv|png|gif|jpg)$ - [F]
</ifmodule>
# END BLOCK INLINE LINKS

MEINEDOMAIN muss durch die eigene Webseite ersetzt werden. Der Code sperrt den Zugriff auf png, gif, jpg und flv Dateien und gibt eine 403-Statusmeldung zurück. Zugriffe die entweder direkt, oder innerhalb der eigenen Domain erfolgen, lässt das Skript passieren.

Verwendung auf eigene Gefahr!

Code via: BananaJoe

[UPDATE]
Leider gibt es Probleme beim Zugriff auf RSS-Feeds. Werden diesen in einem RSS-Reader aufgerufen, ist dies ein externer Zugriff und wird entsprechend blockiert. Ich habe die .htaccess so erweitert, dass sie mit dem GoogleReader zusammenarbeitet. Hier ist aber definitiv noch Feintuning notwendig.

11 Kommentare

  1. Markus sagt:

    Gute Idee :)
    Da mich der Traffic weniger interessiert, laut Stats aber ein Bild häufiger von extern aufgerufen wurde, habe ich das Bild umbenannt. Den Original-Namen habe ich einer Grafik gegeben, die der “Dieb” dann geladen hat. Die zeigte dem Besucher der fremden Seite deutlich, dass sich da jemand mit fremden Federn schmücken wollte :D

  2. kubi sagt:

    @Markus
    Hab ich auch mal gemacht … war mir aber zu mühsam ;-)

  3. Holly sagt:

    ….snip
    Zugriffe die entweder direkt, oder innerhalb der eigenen Domain erfolgen, lässt das Skript passieren.
    …. snap
    und das funktioniert 100% sauber ? wäre cool
    @markus
    BananaJoe zeigt auf seiner seite wie man auf ne datei umleiten kann z.b. dieb.gif o.ä. :-)

  4. Sven Kubiak sagt:

    @Holly
    Ich konnte es bei einem Bild testen. Innerhalb meiner Seite oder bei einem direkten Aufruf ist es verfügbar. Auf der fremdem Seite dagegen nicht mehr. Scheint also zu funktionieren :-) Ob es evtl. Nebenwirkung hat, muss man beobachten. Wenn ich mir den Code ansehe fällt mir aber spontan kein Problem auf ;-)

  5. Paul sagt:

    A: Ich hab einen Webspace mit meinen Daten. Hierbei handelt es sich um reine Text-, Bilder-, Musik- und Video-Dateien.

    B: Einen weiteren Webspace mit meinem Blog (WP-Daten, Datenbanken…)

    Nun greife ich von B auf die Dateien von A zu. Einfach Links sind das.

    Wie mach ich es hier? Ich würde gerne beide Server absichern. Server B darf auf A zugreifen. Direkt darf aber niemand auf A zugreifen. Ist das überhaupt möglich?

  6. Sven Kubiak sagt:

    @Paul
    Nein, mit dem o.g. Skript würde ein solches Szenario nicht funktionieren. Mit entsprechenden Referer-Einträgen sollte das aber kein Problem sein.

  7. Oliver sagt:

    Probleme mit den Feeds insbesondere auch über Feedburner gibt es damit nicht?

  8. kubi sagt:

    @Oliver
    Guter Punkt! Ich werde das bei einem neuen Beitrag mal testen. Bei den alten Beiträgen werden im FeedReader (bei mir GoogleReader) die Bilder aber ohne Probleme angezeigt.

  9. Thorsten sagt:

    Also bei mir werden im Google Reader keine Bilder mehr angezeigt. Nur noch der Name zu dem Bild…

  10. Sven Kubiak sagt:

    @Thorsten
    Ja, bei mir auch. Sorry, scheint noch nicht ganz so ausgereift zu sein, die Idee.

  11. Sven Kubiak sagt:

    Habs mal für die Zusammenarbeit mit dem Google Reader angepasst.

Hinterlasse einen Kommentar