L’hotlinking è una pratica in cui qualcuno inserisce un’immagine sul proprio sito web utilizzando direttamente l’URL dell’immagine memorizzata su un altro server. Questo può risultare problematico per diversi motivi: richiede la larghezza di banda del sito da cui viene prelevata l’immagine senza alcun beneficio per il proprietario del sito, e può violare i diritti d’autore dell’immagine.
Per prevenire l’hotlinking delle immagini su un sito web, ci sono diverse tecniche che puoi adottare.
Se il tuo sito web è ospitato su un server Apache, puoi utilizzare il file .htaccess per impedire l’hotlinking. Il file .htaccess consente di definire delle regole a livello di server che possono bloccare l’accesso alle risorse del tuo sito a utenti non autorizzati.
Ecco un esempio di configurazione del file .htaccess per prevenire l’hotlinking:
```
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?iltuodominio.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?iltuodominio2.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ – [F]
```
Questa configurazione verifica il “referer” della richiesta http e permette l’accesso alle immagini solo se il referer è il tuo dominio. Se il referer è vuoto o proviene da un sito diverso, l’accesso all’immagine verrà negato.
(Fonte: [Apache HTTP Server Tutorial](https://httpd.apache.org/docs/2.4/howto/htaccess.html))
Molti CDN, come Cloudflare, offrono funzioni di protezione dall’hotlinking integrate. Puoi abilitare queste funzioni per impedire l’embedding delle tue immagini su siti non autorizzati. Questo può essere configurato attraverso il pannello di controllo del tuo CDN.
(Fonte: [Cloudflare Support](https://support.cloudflare.com/hc/en-us/articles/200170056-Configuring-Cloudflare-Hotlink-Protection))
Se stai utilizzando un server Nginx, puoi prevenire l’hotlinking con una configurazione simile a quella di Apache ma utilizzando il file di configurazione di Nginx.
Ecco un esempio di configurazione per Nginx:
```
location ~ .(gif|png|jpe?g)$ {
valid_referers none blocked iltuodominio.com *.iltuodominio.com;
if ($invalid_referer) {
return 403;
}
}
```
Questa configurazione permette l’accesso alle immagini solo se il referer è il tuo dominio.
(Fonte: [NGINX Documentation](https://docs.nginx.com/nginx/admin-guide/security-controls/mitigating-attacks-with-http-headers/#hotlinking))
Puoi anche scrivere script personalizzati in linguaggi di programmazione come PHP che verificano l’origine della richiesta prima di servire l’immagine. Questo metodo è più flessibile ma richiede maggiori competenze tecniche.
Ecco un esempio di script PHP:
```
$allowed_domains = [‘iltuodominio.com’, ‘iltuodominio2.com’];
$referer = parse_url($_SERVER[‘HTTP_REFERER’], PHP_URL_HOST);
if (!in_array($referer, $allowed_domains)) {
header(“HTTP/1.1 403 Forbidden”);
exit;
}
?>
```
Un’altra soluzione è l’aggiunta di watermark (filigrane) alle tue immagini. Anche se questa non blocca l’hotlinking, identifica chiaramente la provenienza dell’immagine e può scoraggiare l’uso non autorizzato.
(Fonte: [Adobe Photoshop User Guide](https://helpx.adobe.com/photoshop/using/creating-watermarks.html))
Prevenire l’hotlinking delle immagini richiede l’implementazione di tecniche specifiche a livello di server. Soluzioni come la configurazione del file .htaccess per server Apache, l’utilizzo di CDN come Cloudflare, la configurazione di Nginx e l’integrazione di script personalizzati possono essere efficaci. Mentre le filigrane non impediscono attivamente l’hotlinking, rendono evidente l’origine delle immagini.
Utilizzando queste tecniche, puoi proteggere la tua larghezza di banda e far rispettare i tuoi diritti d’autore, preservando le risorse del tuo sito web.
(Fonte: [Moz.com – Hotlinking Images: What is it, Why it’s Bad and How to Stop it](https://moz.com/blog/hotlinking-images-what-is-it-why-its-bad-and-how-to-stop-it))