Il furto di banda o hotlink è un problema che affligge tutti coloro i quali gestiscono almeno un sito web, e si tratta di quella esecrabile pratica adottata da utenti della rete e da altri webmaster di inserire nelle pagine dei loro siti, blog, forum e quant’altro le immagini del nostro sito linkandole direttamente senza scaricarle.

In questo modo praticamente ad ogni richiesta della loro pagina web viene consumata la nostra banda per scaricare le immagini rubate, si potrebbe considerare l’hotlinking come un vero e proprio furto, poiché la banda consumata dal ragazzaccio a noi proprietari di siti costa denaro (e molto!).

Per risolvere il problema esiste però una possibilità che ci è offerta dal mod_rewrite di Apache, in pratica questa tecnica consente di bloccare le richieste esterne al nostro sito delle immagini, o di cambiare le richieste con altre richieste scelte da noi (quest’ultima frase è volutamente criptica perché non vi voglio rovinare la sorpresa).

Passiamo alla fase pratica e nella directory che contiene le immagini del nostro spazio web creiamo un file .htaccess (il punto che precede il nome serve per nascondere il file dopo la sua creazione), e al suo interno inseriamo le righe:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://yourdomain.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.yourdomain.com/.*$ [NC]
RewriteRule .*.(gif|GIF|jpg|JPG|bmp|BMP)$ - [F]

Con queste poche linee di codice stiamo dicendo che:

  • riga 1: attiva il RewriteEngine che ci consente di riscrivere le url su Apache (utile anche per l’url rewrite)
  • righe 2,3,4: controllano se l’url da cui è partita la richiesta fa parte di una delle tre ammesse come ad esempio yourdomain.com o www.yourdomain.com o ancora un path relativo o assoluto locale, altrimenti non prosegue a servire la richiesta, e chi ha linkato l’immagine senza il nostro permesso non riuscirà a caricarla.
  • riga 5: sono le estensioni dei file di cui si vuole bloccare l’hotlinking.

Per quanto riguarda quei codici a fine linea sono delle opzioni che vengono accettate dal RewriteEngine, in particolare [NC] sta per No Case ossia il controllo tra l ‘url del richiedente e l’url ammessa viene fatto senza preoccuparsi di lettere maiuscole o minuscole.

Ma con questo sistema si può fare molto di più, perché limitarci a non far visualizzare, a chi ci sta rubando le immagini, quello che ha linkato, quando potremmo cambiare la sua richiesta e mostrargli una immagine scelta da noi, magari con un testo che gli ricorda proprio che sta rubando le immagini dal nostro sito?

Ecco quindi il codice che consente di realizzare tutto ciò, come prima va inserito in un file .htaccess nella cartella delle immagini:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://yourdomain.com/ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.yourdomain.com/ [NC]
RewriteCond %{REQUEST_URI} !^/antiHotLink.jpg [NC]
RewriteRule .(gif|GIF|jpg|JPG|bmp|BMP)$ http://yourdomain.com/antiHotLink.jpg [R]

Questo codice è praticamente identico al precedente ad eccezione della riga 6 nella quale diciamo che tutte le richieste ai file che non vogliamo siano linkati, fatte da siti esterni al nostro debbono essere redirette verso antiHotLink.jpg in questo modo se il “ladro” linka l’immagine con Topolino troverà al suo posto l’immagine scelta da noi con un bel testo nel quale potrete inserire il vostro indirizzo in modo che suo malgrado vi farà pubblicità .

Fate attenzione però che se l’immagine antiHotLink.jpg è sul vostro dominio, questa consumerà ancora la vostra banda, quindi per ottenere risultati migliori conviene che l’immagine sia su un secondo server e che in ogni caso sia di dimensioni (intendo il peso) ridottissime.