Uno dei classici problemi dei tanti copia-incollatori seriali di internet, è che – magari a loro insaputa – incollano pure gli indirizzi dei nostri script. A tutti gli effetti richiedono questi file javascript direttamente dal nostro server e in sostanza abusano delle nostre risorse. Questo fenomeno è chiamato hotlinking e possiamo aggirarlo facilmente. Magari pure essendo un po’ cattivi.
Uno dei casi più diffusi è sicuramente quello delle immagini, per il quale potete leggere l’articolo su come prevenire l’hotlinking delle immagini. Un secondo caso, dicevamo, è quello dei file javascript. Per bloccarne l’hotlink è sufficiente aggiungere una regola nel file .htaccess
come questa:
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?NOSTRO_DOMINIO.IT [NC] RewriteRule \.(js)$ - [NC,F,L] </IfModule>
Naturalmente è necessario sostituire NOSTRO_DOMINIO.IT
con il nostro dominio reale. Queste regola, in sostanza, significa:
[Se il chiamante è diverso da vuoto ed è diverso dal nostro dominio, con o senza www, e il file richiesto termina con .js, non rispondere alla richiesta]
A tutti gli effetti, quindi, il sistema non invierà il file al chiamante. Ma c’è una variante un po’ più cattivella, certamente più divertente! Potremmo, anziché non rispondere come nell’esempio precedente, servire un file javascript specifico.
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?NOSTRO_DOMINIO.IT [NC] RewriteRule \.(js)$ /hotlink.js [NC,F,L] </IfModule>
Come vedete, abbiamo modificato l’ultimo rigo, dicendo al sistema di servire il file hotlink.js
, nel quale possiamo decidere di mettere questo codice:
window.location.href='https://nostrodominio.it';
Appena qualcuno proverà a fare un hotlink di un nostro file javascript, il browser dell’utente verrà reindirizzato al nostro sito.