Bloccare Hotlinking Immagini Attraverso il File .htaccess


bloccare hotlinking immaginiQuando si ha un sito o blog su di un server proprio presto o tardi si incomincia a fare il conto con l’Hotlinking delle immagini, che è una pratica piuttosto fastidiosa che oltre a “prendere in prestito” immagini altrui, genera un inutile consumo di banda del server che le ospita e in alcuni casi falsa, anche i dati delle statistiche di accesso.

Noi per porre rimedio a questa pratica ci siamo avvalsi di un servizio esterno: Cloudflare, che oltre ad offrire protezione contro l’ hotlinking ci permette anche di bloccare Spam ed attacchi a forza bruta.

Ma per chi non ha tempo e soprattutto non vuole far gestire i suoi DNS ad un servizio esterno, il metodo più veloce per bloccare l’hotlinking delle immagini è inserire alcune istruzioni nel file .htaccess (ovviamene se il sito si trova sotto Web Server Apache).

Girando per la rete si trovano molte possibili soluzioni all’hotlinking attraverso la modifica del file .htaccess.
La soluzione più citata in Rete (ma a mio parere anche la più sconsigliata), consente di bloccare drasticamente l’hotlinking delle immagini da qualsiasi pagina web esterna al proprio dominio:

[apache]RewriteEngine on
RewriteCond %{HTTP_REFERER}!^$
RewriteCond %{HTTP_REFERER}!^http://(www\.)?miosito.com/.*$ [NC]
RewriteRule .*\.(jpg|jpeg|gif|png|bmp)$ – [F][/apache]

Con l’ultima istruzione si evita l’inutile consumo di banda, restituendo un HTTP 403 – Accesso negato alle richieste provenienti da altri domini.
Tutto molto bello ed efficace, ma tale soluzione ha però una grossa controindicazione: visto che impedisce l’utilizzo delle immagini anche nei Motori di Ricerca per le immagini, nella copia cache dei Motori, nei Feed Reader e in alcuni Aggregatori di News saremmo penalizzati dal punto di vista SEO.

Per ovviare al problema è possibile ricorrere ad una soluzione meno restrittiva, che consenta l’hotlinking solo da determinati siti o domini , in modo che quando passano i motori di ricerca a scandagliare le pagine del nostro sito non abbiamo in risposta un code 403 per ogni immagine.

Le regole seguenti consentono l’utilizzo delle immagini ai principali Motori di Ricerca (copie cache comprese):

  • Google
  • Bing
  • Yahoo
  • Ask

e al dominio di FeedBurner, utile nel caso si utilizzi questo servizio per i propri Feed come facciamo noi:

[apache]RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?miosito.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !google\. [NC]
RewriteCond %{HTTP_REFERER} !yahoo\. [NC]
RewriteCond %{HTTP_REFERER} !bing\. [NC]
RewriteCond %{HTTP_REFERER} !ask\. [NC]
RewriteCond %{HTTP_REFERER} !search\?q=cache [NC]
RewriteCond %{HTTP_REFERER} !feedburner.com [NC]
RewriteRule .*\.(jpg|jpeg|gif|png|bmp)$ – [F][/apache]

Però anche questa soluzione non è priva di rischi, infatti le regole in qualche caso potrebbero essere troppo restrittive ed impedire involontariamente l’utilizzo delle immagini da parte di siti o servizi fidati che abbiamo autorizzato noi a prendere le immagini, oppure ad un altro nostro dominio.

Quindi o aggiungiamo altre righe per tutti i domini che vogliano abilitare oppure ricorriamo ad un’altra alternativa: quella di bloccare l’hotlinking solo dai siti incriminati (ovvero da quei siti che stanno effettivamente utilizzando le nostre immagini senza il nostro consenso).

Per bloccare l’hotlinking da un singolo sito o da un intero dominio (compresi eventuali domini di terzo livello) la sintassi è la seguente:

[apache]RewriteEngine On
RewriteCond %{HTTP_REFERER} ^http://www.sitoincriminato.com/ [NC]
RewriteCond %{HTTP_REFERER} ^http://(.+\.)?dominioincriminato.com/ [NC]
RewriteRule .*\.(jpg|jpeg|gif|png|bmp)$ – [F][/apache]

Secondo me questa è senza dubbio la soluzione più sicura, in quanto impedisce l’hotlinking solo da quei siti che si vogliono effettivamente bloccare.
L’unico svantaggio, è la necessità di dover aggiornare l’elenco dei siti bloccati ogni volta che se ne presenta uno nuovo.

Considerando però che la maggior parte delle richieste indesiderate di immagini, proviene molto spesso da spazi gratuiti (quali blogspot.com e wordpress.com), sarà sufficiente bloccare preventivamente l’hotlinking da questi domini.
Qualora un blog serio, hostato su uno di questi spazi, vorrà utilizzare una nostra immagine, di certo non lo farà utilizzando l’hotlinking ma scaricherà l’immagine poi la ricaricherà lui stesso, perché sa quanto è spiacevole la pratica dell’ hotlinking.

Nulla infine ci vieta di sfruttare a nostro vantaggio gli hotlink già presenti, “dirottando” le richieste indesiderate verso un’immagine sostitutiva in modo da creare un possibile traffico verso il nostro sito , questo perché l’utente legge la scritta: visita il Sito di Zoomingin.net è tentato ad andare a vedere cosa contiene quel sito.

Basterà modificare l’ultima regola nel file .htaccess per redirigere tutte le richieste delle immagini “prese in prestito” dal nostro sito verso un’immagine prestabilita:

[apache]RewriteRule .*\.(jpg|jpeg|gif|png|bmp)$ http://www.miosito.com/banner.jpg [L][/apache]

E se anche in questo caso, si volesse evitare il consumo di banda, sarà sufficiente caricare l’immagine sostitutiva su di un sito di hosting immagini gratuito come per esempio ImageShack.
Avete suggerimenti oppure avete sperimentato soluzioni più efficaci? Condividetele nei commenti.


6 pensieri su “Bloccare Hotlinking Immagini Attraverso il File .htaccess

  1. Ciao,

    mi sono accorto sul mio sito, facendo una ricerca su google immagini, che ho una montagna di hotlink, la maggior parte da siti spazzaura, ora mi conviene dare l’assenso a quei pochi che devo tenere, piuttosto che elencare tutta la spazzatura.
    Ma una volta fatto, a livello visuale cosa succede alla foto che è hostata sull’altro server?
    E poi sulla ricerca immagini di google poi andranno via?

    Grazie

    1. gli comparirà un messaggio di errore e l’immagine non si vedrà più sui loro siti, l’unico modo che avranno per avere la stessa immagine è venire sul tuo sito, scaricarla e poi ricaricarla sul loro sito e cosi facendo utilizzano la loro banda invece della tua.
      Su ricerca immagini ci vorrà un po’ di tempo ma alla fine spariranno quelle degli altri siti e rimarranno solo le tue. Ciao

  2. questo articolo l’ho letto identico su un altro sito. comunque mi è stato utile, grazie. L’ultima riga, dove ho messo l’immagine personalizzata, l’ho fatta terminare con [NC,R,L] inoltre la mia immagine personalizzata è una gif, mentre blocco l’hotlinking solo ai files jpg! e’ solo buon senso

    1. Grazie,

      comunque ci piacerebbe sapere qual è l’altro sito dove hai letto lo stesso articolo, perché ultimamente ne troviamo di articoli copiati pari-pari sempre più spesso e fare una richiesta di DMCA è diventata quasi una pratica settimanale.

Lascia un Commento!