Come evitare l’Hot-Linking di risorse con .htaccess

no-hotlink

L’Hot-Linking (“collegamento a caldo”) consiste nel linkare delle risorse (in particolare le immagini, che tipicamente hanno una dimensione non trascurabile) non ospitate sul proprio server, di fatto sfruttando potenza computazionale e banda Internet che non si possiede.

Questo fenomeno è mitigato dalle offerte di piani Web hosting, VPS e Cloud Server sempre più performanti, ma rimane una pratica scorretta da non attuare.

È possibile proteggersi con alcune direttive del file .htaccess, il file con le configurazioni ad-hoc per il sito che il Web server Apache gestisce.
Affinché le direttive per evitare l’Hot-Linking delle risorse del proprio sito abbiano effetto dovete avere abilitato mod_rewrite nella configurazione di Apache; fatelo in autonomia se avete accesso oppure rivolgetevi al vostro Provider. Mod_rewrite è abilitato nel piano di Web hosting Linux offerto da CoreTech, quindi vi basta modificare il file .htaccess. Questo file si trova solitamente nella root del sito e ha effetto sulla cartella -e sulle sotto-cartelle- in cui si trova.
Potete modificare il comportamento di una particolare sotto-cartella inserendo in essa un ulteriore file .htaccess (non c’è nessun problema ad usare questo nome un’altra volta: è una convenzione che Apache gestisce automaticamente) con direttive diverse.
.htaccess, che è un file nascosto, quindi abilitate l’opzione di visualizzazione delle risorse nascoste nel programma FTP client che usate (ad esempio FileZilla o WinSCP), deve essere modificato con un editor testuale come Blocco Note o Notepad++, NON con un programma di videoscrittura come Microsoft Word.

In questo esempio vogliamo evitare che le immagini ospitate sul nostro sito possano venir linkate direttamente su altri siti; il codice da usare è questo:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^https?://(.+\.)?miosito.it [NC]
RewriteRule \.(jpeg|jpg|png|gif|bmp)$ - [NC,F,L]

Potete decidere che altri tipi di file non vengano linkati (.pdf, .mp3. mp4, .doc, .xls, etc ma anche file css, script js, etc): inseriteli nella direttiva RewriteRule. Ad esempio, per bloccare documenti .pdf e .doc: RewriteRule \.(pdf|doc)$ - [NC,F,L].

Se volete far sì che venga visualizzata un’immagine standard sul sito su cui viene fatto l’Hot-Linking, sostituite l’ultima direttiva con questa:

RewriteRule \.(jpeg|jpg|png|gif|bmp) http://miosito.it/nolink.png [R,L]