Come proteggere le tue immagini dall'hotlinking?

L'hotlinking — o link inline — si verifica quando un sito di terze parti mostra le tue immagini collegando direttamente i loro URL dal tuo server. Il risultato: il loro sito consuma la tua larghezza di banda, esaurisce la tua quota di trasferimento e sovraccarica il tuo server, senza che tu ne tragga alcun beneficio. Nel 2026, l'hotlinking rimane uno degli abusi più diffusi sul web. Ecco tutti i metodi per proteggersi efficacemente.

Capire l'hotlinking e le sue conseguenze

Quando un sito incorpora un'immagine tramite un tag <img src="https://tuodominio.com/foto.jpg"> nelle proprie pagine, è il tuo server a rispondere a ogni caricamento della loro pagina. In pratica:

  • La tua larghezza di banda viene consumata per alimentare un sito di terze parti
  • La tua quota mensile di trasferimento si esaurisce più velocemente
  • Il tuo server subisce un carico aggiuntivo a ogni visita del sito trasgressore
  • Paghi l'hosting di immagini che servono ad arricchire il contenuto di altri siti

Nei casi estremi, un sito molto visitato che hotlinka le tue immagini può provocare un sovraccarico del server o un superamento della quota che rende il tuo sito inaccessibile.

Metodo 1: bloccare l'hotlinking tramite .htaccess (Apache)

È il metodo più classico ed efficace sui server Apache. Il file .htaccess permette di verificare l'intestazione HTTP Referer di ogni richiesta — se la richiesta non proviene dal tuo dominio, viene bloccata o reindirizzata.

Aggiungi queste righe nel tuo file .htaccess nella radice del tuo sito:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://(www.)?tuodominio.com [NC]
RewriteRule .(jpg|jpeg|png|gif|webp|svg|avif)$ - [F,L]

Questa regola blocca qualsiasi richiesta di immagine il cui Referer non sia il tuo dominio. Puoi sostituire [F,L] (errore 403) con un reindirizzamento a un'immagine di avviso:

RewriteRule .(jpg|jpeg|png|gif|webp|svg|avif)$ https://tuodominio.com/no-hotlink.png [R,L]
Lo sapevi? la condizione RewriteCond %{HTTP_REFERER} !^$ autorizza le richieste senza Referer (accesso diretto, segnalibri, strumenti di sviluppo). Se vuoi bloccarle anche queste, rimuovi questa riga — ma tieni presente che questo può impedire la visualizzazione delle tue immagini in alcuni contesti legittimi come le email HTML o gli aggregatori RSS.

Metodo 2: bloccare l'hotlinking tramite Nginx

Su un server Nginx, la protezione si configura nel blocco server o location del tuo file di configurazione:

location ~* .(jpg|jpeg|png|gif|webp|svg|avif)$ {
  valid_referers none blocked tuodominio.com *.tuodominio.com;
  if ($invalid_referer) {
    return 403;
  }
}

La direttiva valid_referers none blocked autorizza gli accessi diretti (none) e le richieste senza Referer (blocked). Solo i domini elencati possono incorporare le tue immagini.

Metodo 3: usare la politica Referrer-Policy

La direttiva HTTP Referrer-Policy controlla quali informazioni Referer vengono inviate con le richieste dal tuo sito. Configurando una politica restrittiva, riduci le informazioni disponibili per i siti di terze parti — ma questo metodo non protegge attivamente le tue immagini, limita solo la diffusione dell'URL del tuo sito.

Per una protezione di base, aggiungi al tuo .htaccess:

Header set Referrer-Policy "same-origin"

Metodo 4: protezione tramite CDN

Se ospiti le tue immagini tramite un CDN (Cloudflare, AWS CloudFront, Fastly…), la protezione contro l'hotlinking è generalmente disponibile nativamente nel pannello di amministrazione:

  • Cloudflare: attiva la regola "Hotlink Protection" nella scheda Scrape Shield del tuo dashboard. Blocca automaticamente le richieste di immagini provenienti da domini non autorizzati
  • AWS CloudFront: usa una funzione Lambda@Edge per verificare l'intestazione Referer e bloccare le richieste non autorizzate
  • Bunny CDN: la protezione hotlinking è disponibile direttamente nelle impostazioni della zona di archiviazione

Il vantaggio del CDN è doppio: la protezione viene gestita a livello della rete di distribuzione, ancor prima di raggiungere il tuo server di origine, e si applica a tutti i tuoi asset senza modificare la configurazione del server.

Metodo 5: rinominare e spostare periodicamente le tue immagini

Un approccio meno tecnico ma complementare consiste nel modificare periodicamente gli URL delle tue immagini. Qualsiasi link diretto esterno diventa immediatamente non valido. Questo approccio può essere automatizzato tramite uno script di rinominazione o una gestione degli asset con hash dei contenuti (come fanno nativamente Webpack o Vite per i file CSS e JS).

Metodo 6: usare token di accesso temporanei

Per le immagini sensibili o ad alto traffico, la generazione di URL firmati con scadenza è la protezione più robusta. Il principio: ogni URL di immagine contiene un token crittografico valido per una durata limitata (1h, 24h…). Trascorso questo tempo, l'URL non è più valido.

  • AWS S3: generazione di Presigned URL tramite l'SDK AWS
  • Cloudflare R2: URL firmati con scadenza configurabile
  • Bunny CDN: firma URL con chiave segreta e timestamp
MetodoDifficoltàEfficaciaCompatibile con CDN
.htaccess (Apache)FacileBuonaParziale
Configurazione NginxIntermediaBuonaParziale
CDN nativo (Cloudflare…)Molto facileMolto buonaSì (nativa)
Rinominazione periodicaVariabileMedia
URL firmati / tokenAvanzataMassima
Lo sapevi? nessuna protezione anti-hotlinking è assolutamente infallibile. Un sito determinato può sempre scaricare le tue immagini e ri-ospitarle sui propri server — in quel caso si tratta di una questione di diritto d'autore, non di hotlinking. La protezione tramite .htaccess o CDN copre la grande maggioranza dei casi abusivi ed è sufficiente per proteggere la tua larghezza di banda quotidianamente.