2010
Feb
25

Usare il file “.htaccess” per bloccare l’hotlinking

broken_link.jpg Continuiamo a parlare di “.htaccess“, oggi vediamo come bloccare gli hotlink alle immagini residenti nel nostro server.

Già ieri abbiamo parlato di come proibire l’accesso alle nostre immagini da siti esterni (come spesso accade con forum o siti amatoriali), che non fanno altro che incrementare l’uso della banda, riducendo le risorse del nostro server. Nel caso di ieri l’utente vedrà il simbolo di immagine mancante, chi prova a collegarsi direttamente al sito ottiene l’errore “403 Forbidden“.

Oggi ci vogliamo invece divertire. Non sarebbe divertente se l’utente al posto di vedere l’immagine mancante vedesse un’altra immagine che lo esorta a non linkare dal nostro server? Questa volta dovremo creare un file “.htaccess” direttamente nella directory delle immagini. E’ possibile creare più “.htaccess” su di un server. Se ne possono creare uno per ogni directory. Vediamo come sarà il nostro per le immagini:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(.*\.)?thejoe.co.nr [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(.*\.)?ppalinks.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(.*\.)?drupal.org [NC]
RewriteRule \.(jpeg|jpg|gif|png)$ http://example.org/bad.jpg [NC,R,L]

In effetti questo codice filtra le immagini richieste basandosi sul sito che ha inoltrato la richiesta. Queste righe hanno effetto solo sulle immagini con estensione jpeg, jpg, gif, o png.

Forse non è chiaro a tutti, ma con queste regole è possibile vietare l’”hotlink” delle immagini a tutti indistintamente, permetterlo solo ad alcuni. Le righe 3, 4 e 5 permettono l’hotlink solo ai domini elencati. L’ultima riga effettua il “redirect” a chiunque non sia elencato all’immagine “bad.jpg” sul server “example.org“.

Ricordiamoci, se stiamo reindirizzando qualcuno ad un’immagine differente, non deve trovarsi nella directory delle immagini del nostro server, o innescheremo un loop infinito.

Chiaramente l’hotlinking si può applicare a qualsiasi tipo di file, non solo alle immagini. Con la seguente riga blocchiamo anche gli zip e gli mp3 restituendo il codice “403 Forbidden“:

RewriteRule \.(jpeg|jpg|gif|png|mp3|zip)$ - [F]

Admin