← Wszystkie testy
BezpieczeństwoTypowa waga: Niski

Skaner słabego HSTS

Wykrywa nagłówek HSTS z bardzo niskim max-age lub bez includeSubDomains, co zostawia luki na downgrade.

Co sprawdza

Ten skaner przegląda twój nagłówek HSTS i wykrywa, gdy ma zbyt niski max-age albo brakuje mu atrybutu includeSubDomains. Dzięki temu rozpoznaje konfiguracje HSTS, które zostawiają możliwe do wykorzystania luki.

Dlaczego to ważne

HSTS zmusza przeglądarki, by zawsze używały HTTPS z twoją stroną, ale jeśli jego czas jest bardzo krótki albo nie obejmuje subdomen, zostają okna, w których atakujący może wymusić niezaszyfrowane połączenie. Ta luka umożliwia ataki downgrade, które przechwytują ruch.

Jak to naprawić

Ustaw nagłówek HSTS z długim max-age (zwykle jeden rok, czyli 31536000 sekund) i dodaj includeSubDomains, żeby objąć całą domenę. Robi się to zwykle w konfiguracji serwera lub CDN, a jeśli nie masz pewności, warto najpierw przetestować to z mniejszą wartością.

Jak działa ta kontrola

Ta kontrola działa tylko wtedy, gdy Twoja strona już wysyła nagłówek Strict-Transport-Security; jeśli brakuje go całkowicie, zgłasza to skaner nagłówków. Scanaris odczytuje wartość i sprawdza dwie rzeczy: czy max-age wynosi co najmniej rok (31536000 sekund) i czy zawiera includeSubDomains. Jeśli brakuje jednego z nich, otwiera ustalenie o niskiej wadze ze szczegółami. Niskiej, bo krótki lub częściowy HSTS wciąż coś chroni; ale zostawia luki, które atakujący może wykorzystać.

Co robi HSTS i dlaczego oba atrybuty

Gdy przeglądarka otrzyma ten nagłówek przez HTTPS, zapisuje Twoją domenę na wewnętrznej liście i przez czas wskazany w max-age zamienia każdą próbę wejścia na http:// w https://, zanim cokolwiek wyśle. To eliminuje pierwsze niezaszyfrowane żądanie, którego przekierowanie nie jest w stanie uniknąć. max-age rzędu kilku godzin lub dni zostawia użytkownika bez ochrony przy każdym wygaśnięciu; stąd minimum jednego roku. Bez includeSubDomains atakujący może wycelować w cokolwiek.twojadomena.pl przez HTTP i, przez sposób działania ciasteczek domenowych, ukraść lub ustawić ciasteczka ważne dla strony głównej.

Jak to naprawić

Zalecana wartość:

Strict-Transport-Security: max-age=31536000; includeSubDomains
  • Vercel: ustawia go domyślnie na domenach własnych; jeśli używasz vercel.json lub next.config do innych nagłówków, dodaj go tam z tą wartością.
  • Netlify: w pliku _headers, pod /*.
  • Nuxt: w routeRules w nuxt.config, reguła '/**'.
  • nginx: add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; w bloku server dla 443.
  • Express: helmet.hsts({ maxAge: 31536000, includeSubDomains: true }).

Zanim dodasz includeSubDomains, upewnij się, że wszystkie Twoje subdomeny serwują HTTPS: panel administracyjny, API, blog u innego dostawcy, subdomena pocztowa, jeśli ma stronę. Każda subdomena odpowiadająca tylko przez HTTP przestanie działać w przeglądarkach, które już widziały nagłówek, i nie ma drogi powrotu, dopóki max-age nie wygaśnie. W razie wątpliwości zacznij od max-age=86400 i bez subdomen, sprawdź, a potem podnieś wartość, gdy wszystko działa.

Preload

Z preload i max-age co najmniej jednego roku możesz wnioskować o dodanie domeny do listy wbudowanej w Chrome, Firefox i Safari: wtedy nawet pierwsza wizyta nie przechodzi przez HTTP. To zwykła różnica między oceną A i A+ w narzędziach analitycznych. Ale to zobowiązanie prawie nieodwracalne (wyjście z listy zajmuje miesiące), więc zrób to tylko wtedy, gdy cała domena działa na HTTPS od jakiegoś czasu bez incydentów.

Sprawdź, czy naprawione

curl -sI https://twojadomena.pl | grep -i strict-transport

Musi pokazać max-age równe 31536000 lub więcej oraz includeSubDomains. Sprawdź na publicznym adresie: jeśli masz przed sobą CDN, to on musi go wysyłać.

Często zadawane pytania

Czy HSTS zastępuje przekierowanie z HTTP na HTTPS?

Nie. Nagłówek dociera tylko przez HTTPS, więc pierwsza wizyta nadal potrzebuje przekierowania. Uzupełniają się: przekierowanie za pierwszym razem, HSTS przy wszystkich kolejnych.

Mam wewnętrzną subdomenę, która działa tylko przez HTTP.

W takim razie nie dodawaj includeSubDomains, dopóki jej nie zmigrujesz, i zaakceptuj na razie ustalenie o niskiej wadze. Niezaszyfrowana subdomena to realne ryzyko dla ciasteczek domeny, więc migracja się opłaca.

Co się stanie, jeśli skonfiguruję to źle?

Przeglądarki, które otrzymały nagłówek, zachowają politykę do jej wygaśnięcia. Możesz wysłać max-age=0, żeby poprosić je o zapomnienie, ale zobaczą to tylko te, które wrócą przez HTTPS. Dlatego lepiej zaczynać od krótkich wartości.

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