← Tutti i controlli
SicurezzaGravità tipica: Basso

Scanner della Referrer-Policy debole

Rileva una Referrer-Policy permissiva che rivela l'URL completo del tuo sito a destinazioni esterne.

Cosa controlla

Questo scanner rileva se il tuo sito ha una Referrer-Policy permissiva che rivela l'URL completo a siti esterni. Individua quando il browser invia indirizzi dettagliati del tuo sito visitando link o caricando risorse di terze parti.

Perché è importante

L'URL completo può contenere informazioni sensibili come identificatori di sessione, token o percorsi privati che non vorresti condividere con altri siti. Una policy permissiva invia quei dati a destinazioni esterne ogni volta che un utente lascia il tuo sito.

Come risolverlo

Imposta l'header Referrer-Policy su un valore più rigido come strict-origin-when-cross-origin, che condivide solo l'origine e non il percorso completo con i siti esterni. Si definisce nella configurazione del server o del CDN ed è di solito una modifica semplice e sicura.

Come funziona questo controllo

Questo controllo agisce solo se il tuo sito invia già l'header Referrer-Policy; se manca del tutto, lo segnala lo scanner degli header. Scanaris legge il valore e, se contiene unsafe-url o no-referrer-when-downgrade, apre un rilievo di gravità bassa con il valore esatto. Qualsiasi altro valore (strict-origin-when-cross-origin, no-referrer, same-origin, origin, strict-origin) viene accettato. Cioè, non misura che tu abbia l'header, ma che quello che hai non faccia trapelare l'URL completo.

Cos'è il referer e cosa trapela

Ogni volta che un utente clicca un link verso un altro sito, o la tua pagina carica un'immagine o uno script da un altro dominio, il browser invia alla destinazione un header Referer con l'URL della pagina da cui proviene. La policy del referer decide quanto di quell'URL viene inviato. Con unsafe-url, l'URL completo, percorso e parametri inclusi, anche se la destinazione è HTTP. Con no-referrer-when-downgrade, l'URL completo verso qualsiasi destinazione HTTPS; era il comportamento predefinito dei browser fino al 2020 e per questo resta in molte configurazioni vecchie. Ciò che trapela sono cose come /dashboard/fatture/8841, /reset-password?token=..., /cerca?q=licenziamento o l'identificativo di un documento condiviso: tutto ciò che sta nell'URL dell'utente arriva a reti pubblicitarie, servizi di analisi e qualsiasi sito esterno a cui rimandi.

Come risolvere

Il valore consigliato per quasi ogni sito:

Referrer-Policy: strict-origin-when-cross-origin

Invia l'URL completo dentro il tuo stesso dominio (così la tua analitica continua a funzionare), solo l'origine (https://tuodominio.it) ad altri domini, e nulla se la destinazione è HTTP. È il valore predefinito dei browser moderni, quindi impostandolo esplicitamente stai solo fissando ciò che già fanno. Se non ti serve che nessuno sappia da dove arriva il visitatore, no-referrer è ancora più rigoroso.

  • Nuxt: in routeRules di nuxt.config, nella regola '/**'.
  • Next.js: nella funzione headers() di next.config.js.
  • Vercel: in vercel.json. Netlify: in _headers.
  • nginx: add_header Referrer-Policy "strict-origin-when-cross-origin" always;. Apache: Header always set Referrer-Policy "strict-origin-when-cross-origin".
  • Express: helmet.referrerPolicy({ policy: 'strict-origin-when-cross-origin' }).

Se un link specifico ha bisogno di un altro comportamento (per esempio un programma di affiliazione che esige il referer completo), regolalo su quel link con l'attributo referrerpolicy invece di allentare la policy di tutto il sito.

Verifica che sia risolto

curl -sI https://tuodominio.it | grep -i referrer-policy

Deve mostrare strict-origin-when-cross-origin o no-referrer. Controlla anche che non ci sia un tag <meta name="referrer"> nell'HTML con un valore diverso: il meta ha la precedenza sull'header in quella pagina.

Domande frequenti

Perderò dati in Google Analytics o nel mio strumento di statistiche?

No. L'analitica del tuo stesso sito si alimenta dallo script che includi, non dal referer. Ciò che cambia è quello che vedono i siti a cui rimandi: invece della pagina esatta vedranno il tuo dominio. Per le tue pagine interne, il referer completo resta.

Il mio sito non ha URL con dati sensibili.

Oggi. Un link di reset password, un identificativo d'ordine o un parametro di ricerca compaiono appena il sito cresce. Fissare la policy corretta costa una riga e non ha effetti collaterali.

Perché no-referrer-when-downgrade era il valore predefinito?

Perché nei primi anni del web il referer completo era considerato utile e HTTPS era minoritario. Chrome, Firefox e Safari hanno cambiato il valore predefinito in strict-origin-when-cross-origin tra il 2020 e il 2021 proprio per le fughe che questa guida descrive. Tutti gli header correlati li spiega header HTTP per umani.

Verificalo sul tuo sito

Scansiona il tuo sito gratis e scopri se questo e altri 44 controlli passano, con un prompt di fix per ogni problema.

Scansiona il mio sito gratis

Dal blog

Controlli correlati