Patrick Andrieu: Schutz vor Hotlinking per htaccess

Beitrag lesen

Hallo Brombeermilchtrinker!

Angenommen, ich möchte den Zugriff genannter Dateitypen für die beiden Domains 'example.com' und 'test.org' erlauben, dann mache ich es jetzt Deineim Vorschlag folgend _so_:

<FilesMatch ".(gif|jpe?g|png|bmp|pdf|zip|rar|mp3|js)$">
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http.*example.com|*test.org.*$ [NC]
RewriteCond %{REQUEST_FILENAME} !norequest.png$
RewriteRule .*.(gif|jpe?g|png|bmp|pdf|zip|rar|mp3|js)$ http://www.example.com/dieb.gif [R]
</FilesMatch>

Wozu Du REQUEST_FILENAME brauchst, musst Du wissen, in meinem Beispiel war es nicht nötig.

Du kannst die Suffixe so gruppieren, statt:

RewriteCond %{HTTP_REFERER} !^http.*example.com|*test.org.*$ [NC]

RewriteCond %{HTTP_REFERER} !^http.*example|.*test.org|com.*$ [NC]
                                            ^1    ^2

1: Hier ein Punkt für ein beliebiges Zeichen (durch * wird es eins, keins oder beliebig viele Zeichen, wie vor »example«)
2. Den Punkt, der die Bestandteile einer URL trennt, lieber maskieren.

Nur zur Absicherung: Egal, welche Seite jetzt einen Aufruf macht, also zB.

example.com/index.php
http://example.com/ordner1/test.php
www.example.com
http://www.example.com/ordner2
www.example.com/ordner3/test.php
subdomian.example.com
http://subdomain.example.com
http://subdomain.example.com/test2.html

Ja, dürfte funzen™. Sogar https ist abgesichert. Dafür dürfte:

http://forum.de.selfhtml.org/?t=182723&m=1209390 als Referrer dazu führen, das Dein Bild »dieb.gif« angezeigt wird, solltest Du hier ein anderes Bild verlinken.

Viele Grüße aus Frankfurt/Main,
Patrick

--
_ - jenseits vom delirium - _

   Diblom   [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
J'ai 10 ans! | Achtung Agentur! | Nichts ist unmöglich? Doch! | Heute schon gegökt?