devdev / in the loop

Evitare l’hotlinking dei file javascript con .htaccess

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.

Questo articolo ti è stato utile?
Javascript – LETTURA 4 MINUTI Alternativa a jQuery .eq() in Javascript
Una delle funzioni di traversing più utili di jQuery è sicuramente .eq() . Ci permette di accedere ad un elemento di…
Javascript – LETTURA 4 MINUTI Come conoscere la posizione di un elemento con jQuery index o in vanilla Javascript
Il motto di jQuery è “Write less, do more”, anche se gli ultimi anni stiamo vedendo uno shifting di molte…
Javascript – LETTURA 6 MINUTI Utilizzare i parametri GET in Javascript con URLSearchParams
I parametri URL, che tutti conosciamo come parametri GET o query) vengono utilizzati per passare informazioni alla pagina che stiamo…
Javascript – LETTURA 4 MINUTI Aggiungere una regola CSS con Javascript
Aggiungere una regola CSS in modo dinamico con Javascript può esserci utile in vari casi: uno riguarda sicuramente le performance,…
Roba figa da
if (weekend) {
    relax();
}
la nostra newsletter, ogni tanto.