Referrer Policy

Referrer Policy jest kolejnym nagłówkiem bezpieczeństwa, który stosuję w zabezpieczaniu strony internetowej. Kontroluje on jakie informacje o źródle (referrer) są przekazywane podczas nawigacji między stronami internetowymi. Jest to istotne z punktu widzenia prywatności i bezpieczeństwa użytkowników. Ponieważ pozwala na ograniczenie ilości danych, które mogą być udostępniane stronom trzecim. W tym artykule opiszę, czym jest Referrer Policy, jakie są jego rodzaje, jak wpływa na prywatność użytkowników oraz jak można go skonfigurować.

Czym jest Referrer Policy?

Referrer Policy to mechanizm, który wprowadziło W3C (World Wide Web Consortium). Pozwala on kontrolować, jakie informacje o źródle są przekazywane podczas nawigacji między stronami internetowymi. Informacje te są zawarte w nagłówku HTTP Referer, który jest automatycznie dodawany przez przeglądarki internetowe podczas przechodzenia z jednej strony na drugą. Nagłówek ten może zawierać pełny URL strony źródłowej, co może prowadzić do ujawnienia wrażliwych danych, takich jak parametry zapytań czy dane osobowe.

Rodzaje Referrer Policy

Referrer Policy oferuje kilka różnych opcji, które pozwalają kontrolować, co przekazuje nagłówek Referer. Oto najważniejsze z nich:

  1. no-referrer: Ta opcja powoduje, że przeglądarka nie wysyła żadnych informacji o źródle. Jest to najbezpieczniejsza opcja z punktu widzenia prywatności, ponieważ żadnych danych o stronie źródłowej nie są ujawniane.
  2. no-referrer-when-downgrade: Przeglądarka wysyła pełny URL strony źródłowej tylko wtedy, gdy nawigacja odbywa się z protokołu HTTPS do HTTPS. W przypadku nawigacji z HTTPS do HTTP, przeglądarka nie wysyła żadnych informacji o źródle. Jest to domyślna opcja w większości przeglądarek.
  3. same-origin: Przeglądarka wysyła pełny URL strony źródłowej tylko wtedy, gdy nawigacja odbywa się w obrębie tej samej domeny. W przypadku nawigacji między różnymi domenami, przeglądarka nie wysyła żadnych informacji o źródle.
  4. origin: Przeglądarka wysyła tylko domenę strony źródłowej, bez ścieżki i parametrów zapytań. Jest to kompromis między prywatnością a funkcjonalnością, ponieważ pozwala na przekazanie podstawowych informacji o źródle bez ujawniania wrażliwych danych.
  5. strict-origin: Przeglądarka wysyła tylko domenę strony źródłowej, ale tylko wtedy, gdy nawigacja odbywa się z protokołu HTTPS do HTTPS. W przypadku nawigacji z HTTPS do HTTP, przeglądarka nie wysyła żadnych informacji o źródle.
  6. origin-when-cross-origin: Przeglądarka wysyła pełny URL strony źródłowej tylko wtedy, gdy nawigacja odbywa się w obrębie tej samej domeny. W przypadku nawigacji między różnymi domenami, przeglądarka wysyła tylko domenę strony źródłowej.
  7. strict-origin-when-cross-origin: Przeglądarka wysyła pełny URL strony źródłowej tylko wtedy, gdy nawigacja odbywa się w obrębie tej samej domeny i z protokołu HTTPS do HTTPS. W przypadku nawigacji między różnymi domenami lub z HTTPS do HTTP, przeglądarka wysyła tylko domenę strony źródłowej.
  8. unsafe-url: Przeglądarka wysyła pełny URL strony źródłowej niezależnie od protokołu i domeny. Jest to najmniej bezpieczna opcja, ponieważ ujawnia wszystkie informacje o stronie źródłowej.

Wpływ na prywatność użytkowników

Referrer Policy ma istotny wpływ na prywatność użytkowników. Pozwala on na kontrolowanie, jakie informacje są przekazywane stronom trzecim podczas nawigacji między stronami internetowymi. Wybór odpowiedniej polityki może pomóc w ochronie wrażliwych danych, takich jak parametry zapytań czy dane osobowe, przed nieautoryzowanym dostępem.

Na przykład, polityka no-referrer zapewnia najwyższy poziom prywatności, ponieważ nie ujawnia żadnych informacji o stronie źródłowej. Z kolei polityka unsafe-url jest najmniej bezpieczna, ponieważ ujawnia pełny URL strony źródłowej. Może to prowadzić do ujawnienia wrażliwych danych.

Konfiguracja

Referrer Policy można skonfigurować na kilka różnych sposobów, w zależności od potrzeb i wymagań. Oto najważniejsze metody konfiguracji:

  1. Nagłówek HTTP: Referrer Policy można ustawić za pomocą nagłówka HTTP Referrer-Policy, który jest dodawany do odpowiedzi serwera. Na przykład, aby ustawić politykę no-referrer, można dodać następujący nagłówek do odpowiedzi serwera:
    http
    Referrer-Policy: no-referrer
    
  2. Meta tag: Referrer Policy można również ustawić za pomocą meta tagu w kodzie HTML strony. Na przykład, aby ustawić politykę no-referrer, można dodać następujący meta tag do sekcji <head> strony:
    html
    <meta name="referrer" content="no-referrer">
    
  3. Atrybut referrerpolicy: Referrer Policy można ustawić na poziomie poszczególnych elementów HTML, takich jak linki czy formularze, za pomocą atrybutu referrerpolicy. Na przykład, aby ustawić politykę no-referrer dla linku, można dodać następujący atrybut do elementu <a>:
    html
    <a href="https://example.com" referrerpolicy="no-referrer">Link</a>
    

Przykłady zastosowania

Referrer Policy możemy używanć w różnych scenariuszach, aby zapewnić prywatność i bezpieczeństwo użytkowników. Oto kilka przykładów zastosowania:

  1. Strony logowania: Na stronach logowania ustawiamy politykę no-referrer, aby zapobiec ujawnieniu danych logowania stronom trzecim.
  2. Strony z wrażliwymi danymi: Na stronach zawierających wrażliwe dane, takie jak dane osobowe czy informacje finansowe, ustawiamy politykę strict-origin, aby ograniczyć ilość przekazywanych informacji o źródle.
  3. Strony e-commerce: Na stronach e-commerce ustawiamy politykę origin-when-cross-origin, aby umożliwić przekazywanie podstawowych informacji o źródle bez ujawniania wrażliwych danych.

Podsumowanie

Referrer Policy to ważny mechanizm bezpieczeństwa, który pozwala na kontrolowanie, jakie informacje o źródle są przekazywane podczas nawigacji między stronami internetowymi. Wybór odpowiedniej polityki może pomóc w ochronie prywatności użytkowników i zapobiec ujawnieniu wrażliwych danych stronom trzecim. Konfiguracja Referrer Policy jest prosta, a jej wykonanie odbywa się za pomocą nagłówka HTTP, meta tagu lub atrybutu referrerpolicy w kodzie HTML strony. Warto zrozumieć różne opcje Referrer Policy i zastosować je w odpowiednich scenariuszach, aby zapewnić prywatność i bezpieczeństwo użytkowników.

Referrer Policy

Konfiguracja Referrer Policy na mojej stronie

Jest to kolejny z elementów mających na celu poprawę bezpieczeństwa naszej witryny. Jest to też kolejny z kroków do uzyskania końcowego efektu, jaki opisałem w artykule Strona internetowa – jak ją założyć?

W efekcie widzimy, że po właściwej konfiguracji indeks bezpieczeństwa osiągnął poziom A+, co oznacza, że wszystkie nagłówki poprawnie skonfigurowałem.

Jeśli chcesz dowiedzieć się więcej na temat Referrer Policy, informacje znajdziesz na stronach MDN Web Doc oraz OWASP.