← Wszystkie testy
BezpieczeństwoTypowa waga: Niski

Skaner słabej Referrer-Policy

Wykrywa zbyt liberalną Referrer-Policy, która ujawnia pełny URL Twojej strony zewnętrznym miejscom.

Co sprawdza

Ten skaner wykrywa, czy twoja strona ma pobłażliwą Referrer-Policy, która ujawnia pełny adres URL zewnętrznym witrynom. Wskazuje, gdy przeglądarka wysyła szczegółowe adresy z twojej strony przy odwiedzaniu linków lub ładowaniu zasobów od osób trzecich.

Dlaczego to ważne

Pełny adres URL może zawierać wrażliwe informacje, takie jak identyfikatory sesji, tokeny czy prywatne ścieżki, których nie chciałbyś udostępniać innym witrynom. Pobłażliwa polityka wysyła te dane do zewnętrznych miejsc za każdym razem, gdy użytkownik opuszcza twoją stronę.

Jak to naprawić

Ustaw nagłówek Referrer-Policy na bardziej restrykcyjną wartość, jak strict-origin-when-cross-origin, która udostępnia zewnętrznym witrynom tylko origin, a nie pełną ścieżkę. Definiuje się go w konfiguracji serwera lub CDN i zwykle jest to prosta, bezpieczna zmiana.

Jak działa ta kontrola

Ta kontrola działa tylko wtedy, gdy Twoja strona już wysyła nagłówek Referrer-Policy; jeśli brakuje go całkowicie, zgłasza to skaner nagłówków. Scanaris odczytuje wartość i jeśli zawiera unsafe-url lub no-referrer-when-downgrade, otwiera ustalenie o niskiej wadze z dokładną wartością. Każda inna wartość (strict-origin-when-cross-origin, no-referrer, same-origin, origin, strict-origin) jest uznawana za dobrą. Czyli nie mierzy, czy masz nagłówek, tylko czy ten, który masz, nie wycieka pełnego adresu.

Czym jest referer i co wycieka

Za każdym razem, gdy użytkownik klika link do innej strony albo Twoja strona ładuje obraz lub skrypt z innej domeny, przeglądarka wysyła do celu nagłówek Referer z adresem strony, z której przychodzi. Polityka referera decyduje, ile z tego adresu jest wysyłane. Przy unsafe-url pełny adres, ze ścieżką i parametrami, nawet jeśli cel jest HTTP. Przy no-referrer-when-downgrade pełny adres do każdego celu HTTPS; to było domyślne zachowanie przeglądarek do 2020 roku i dlatego nadal tkwi w wielu starych konfiguracjach. Wyciekają rzeczy takie jak /dashboard/faktury/8841, /reset-password?token=..., /szukaj?q=zwolnienie albo identyfikator udostępnionego dokumentu: wszystko, co jest w adresie użytkownika, trafia do sieci reklamowych, usług analitycznych i każdej zewnętrznej strony, do której linkujesz.

Jak to naprawić

Zalecana wartość dla niemal każdej strony:

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

Wysyła pełny adres wewnątrz Twojej własnej domeny (Twoja analityka dalej działa), tylko źródło (https://twojadomena.pl) do innych domen, i nic, jeśli cel jest HTTP. To domyślna wartość nowoczesnych przeglądarek, więc ustawiając ją jawnie, tylko utrwalasz to, co już robią. Jeśli nikt nie musi wiedzieć, skąd przychodzi odwiedzający, no-referrer jest jeszcze bardziej restrykcyjne.

  • Nuxt: w routeRules w nuxt.config, w regule '/**'.
  • Next.js: w funkcji headers() w next.config.js.
  • Vercel: w vercel.json. Netlify: w _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' }).

Jeśli jakiś konkretny link potrzebuje innego zachowania (np. program partnerski wymagający pełnego referera), ustaw to na tym linku atrybutem referrerpolicy zamiast luzować politykę całej strony.

Sprawdź, czy naprawione

curl -sI https://twojadomena.pl | grep -i referrer-policy

Powinno pokazać strict-origin-when-cross-origin lub no-referrer. Sprawdź też, czy w HTML-u nie ma znacznika <meta name="referrer"> z inną wartością: meta ma pierwszeństwo przed nagłówkiem na tej stronie.

Często zadawane pytania

Czy stracę dane w Google Analytics albo moim narzędziu statystyk?

Nie. Analityka Twojej własnej strony karmi się skryptem, który dołączasz, a nie refererem. Zmienia się to, co widzą strony, do których linkujesz: zamiast dokładnej strony zobaczą Twoją domenę. Dla Twoich własnych stron wewnętrznych pełny referer zostaje.

Moja strona nie ma adresów z wrażliwymi danymi.

Dzisiaj. Link do resetu hasła, identyfikator zamówienia albo parametr wyszukiwania pojawiają się, gdy tylko strona rośnie. Ustawienie właściwej polityki to jedna linia i nie ma skutków ubocznych.

Dlaczego no-referrer-when-downgrade było wartością domyślną?

Bo w pierwszych latach sieci pełny referer uznawano za przydatny, a HTTPS był w mniejszości. Chrome, Firefox i Safari zmieniły wartość domyślną na strict-origin-when-cross-origin między 2020 a 2021 rokiem właśnie z powodu wycieków, które opisuje ten przewodnik. Wszystkie powiązane nagłówki wyjaśnia nagłówki HTTP dla ludzi.

Sprawdź to na swojej stronie

Przeskanuj swoją stronę za darmo i zobacz, czy ten i 44 inne testy przechodzą, z promptem naprawczym dla każdego problemu.

Przeskanuj moją stronę za darmo

Z bloga

Powiązane testy