CAI Technology
Menu ☰
aegis · · 5 min citire

Referrer-Policy: prevenire scurgere date prin headerul Referer

URL-urile cu tokeni sau date PII se scurg automat către domenii externe prin headerul Referer. Un singur header rezolvă problema.

CAI Technology · Ultima revizuire: 09.05.2026
Referrer-Policy: prevenire scurgere date prin headerul Referer

Pe scurt

Headerul Referer (cu un singur “r” — typo istoric perpetuat din RFC) e trimis automat de browser la fiecare request și conține URL-ul paginii de pe care vine utilizatorul. Dacă URL-ul vostru conține tokeni de sesiune, parametri PII (Personally Identifiable Information), sau path-uri interne sensibile, ele sunt leaked către orice domeniu către care faceți request — CDN-uri, analytics, ad networks, social plugins.

Referrer-Policy: strict-origin-when-cross-origin e standardul modern care permite full referer pe same-origin, doar origin-ul pe cross-origin HTTPS, și nimic pe HTTPS→HTTP downgrade.

În contextul GDPR Art.5 (data minimization) și Art.32 (security by design), gestionarea Referer e o responsabilitate legală, nu doar best practice.

Cazuri concrete de scurgere

Token-ul de password reset

URL-ul de reset password al utilizatorului:

https://firma.ro/reset?token=abc123def456&email=user@partener.com

Pe această pagină, există link extern (footer, ad, analytics):

<a href="https://help.example.com/contact">Contact</a>

Când utilizatorul dă click sau dacă pagina face request automat la help.example.com, browser trimite:

Referer: https://firma.ro/reset?token=abc123def456&email=user@partener.com

help.example.com (sau ce CDN/analytics e între) vede tokenul + email-ul. Dacă logurile lor sunt accesibile angajaților sau compromise, atacatorul poate face reset password în numele utilizatorului.

URL-uri admin cu UUID-uri sensibile

https://firma.ro/admin/users/12345/medical-record/edit

Pe pagină, <script src="https://googletagmanager.com/gtm.js"> — Google primește:

Referer: https://firma.ro/admin/users/12345/medical-record/edit

Date PII medicale leaked către Google Analytics. Potențial breach GDPR direct (Art.9 — categorii speciale de date, sănătate).

Search query-uri private

https://intranet.firma.ro/search?q=cifra-afaceri-2024-confidential

Orice link extern → Referer cu query-ul confidențial către third party.

Anatomia Referrer-Policy

Referrer-Policy: strict-origin-when-cross-origin
PoliticăComportament
no-referrerNiciun Referer trimis vreodată — paranoid
no-referrer-when-downgradeDefault browser legacy — Referer doar la same protocol HTTPS→HTTPS
originDoar origin-ul (https://firma.ro), fără path/query
origin-when-cross-originFull URL pe same-origin, doar origin pe cross-origin
strict-originDoar origin-ul pe HTTPS→HTTPS, nimic pe HTTPS→HTTP
strict-origin-when-cross-originModern default — full pe same-origin, origin pe cross-origin HTTPS, nimic pe downgrade
same-originFull pe same-origin, nimic pe cross-origin
unsafe-urlFull URL mereu — periculos, nu folosiți

Recomandare pentru 99% din cazuri: strict-origin-when-cross-origin (default Chrome 85+, Firefox 87+).

Implementare pas-cu-pas

Pas 1 — Header global

nginx:

add_header Referrer-Policy "strict-origin-when-cross-origin" always;

Apache:

Header always set Referrer-Policy "strict-origin-when-cross-origin"

Caddy:

header Referrer-Policy strict-origin-when-cross-origin

Express (Helmet):

app.use(helmet.referrerPolicy({ policy: 'strict-origin-when-cross-origin' }));

Pentru link-uri foarte sensibile (admin → extern), rel="noreferrer" HTML attribute:

<a href="https://external.com" rel="noreferrer">External</a>

Combinat cu noopener (anti-tabnabbing):

<a href="https://external.com" rel="noreferrer noopener" target="_blank">External</a>

Pas 3 — Mută tokeni din query string

Best practice fundamentală: tokeni de password reset, magic link-uri, session tokens NU în URL query. Folosiți:

Dacă neapărat URL-ul trebuie să conțină token (magic link în email):

  1. Token e single-use (consumat la prima vizită)
  2. Token expiră rapid (15 min - 24h max)
  3. Pagina destinație are Referrer-Policy: no-referrer strict
  4. Pagina destinație face redirect imediat la URL fără token

Pas 4 — Audit URL-uri existente

# Search log-uri pentru URL-uri cu PII / tokeni
grep -E "token=|email=|password=|key=" /var/log/nginx/access.log

Migrare URL-uri descoperite la POST body sau session cookies.

Confuzii frecvente

“Referrer-Policy reduce traficul referral pe Google Analytics.” — Adevărat parțial. strict-origin-when-cross-origin trimite doar origin-ul către domenii externe (GA primește https://firma.ro, nu URL-ul exact). Pentru analytics interne folosiți server-side tracking sau first-party.

“Referrer header e oricum opt-in, browserele moderne îl strip-uiesc.” — Greșit. Browser-ele trimit Referer by default — Referrer-Policy e mecanismul de control. Fără header explicit, default-ul depinde de browser (strict-origin-when-cross-origin în Chrome 85+, dar nu universal).

“GDPR nu cere asta explicit.” — GDPR Art.32 cere “măsuri tehnice și organizatorice adecvate”. DPA-uri europene (CNIL Franța, garante Italia) au amendat firme pentru leaking PII via Referer în 2023-2024. Implicit obligatoriu.

Verificați acum

ARTEMIS detectează lipsa Referrer-Policy în orice scanare Site (2 EUR) plus 36 alte verificări.


🔗 Soluții complementare CAI Technology


tehnic@caitech.ro

Începem cu o conversație de 30 de minute.

Audit AI-readiness gratuit pentru companii peste 50 angajați. Răspundem în 24 de ore.