ARK. B14Parametr monitoringuBezpieczeństwo · lista 50 parametrów

Nagłówek HSTS

ważność wysokamierzonysposób security_headers

Strict-Transport-Security wymusza HTTPS przy kolejnych wizytach. Brak to możliwy downgrade do HTTP.

ARK. 1

WIKI

artykuł z 16.09.2026 · źródeł 7

Nagłówek HSTS to parametr monitoringu stron internetowych, który sprawdza, czy odpowiedź serwera przesłana przez HTTPS zawiera nagłówek Strict-Transport-Security. Pomiar kończy się jednym z trzech wyników: nagłówek obecny, brak nagłówka albo nie udało się pobrać odpowiedzi. HSTS (HTTP Strict Transport Security) to mechanizm, którym witryna deklaruje, że jest dostępna wyłącznie przez bezpieczne połączenia [1].

Jak działa

Serwer wysyła nagłówek w odpowiedzi HTTPS. Wymagana dyrektywa max-age podaje liczbę sekund, przez które przeglądarka traktuje host jako znany host HSTS [1]. Opcjonalna dyrektywa includeSubDomains rozciąga politykę na wszystkie subdomeny [1]. Nagłówek otrzymany przez nieszyfrowane HTTP przeglądarka musi zignorować [1], bo inaczej atakujący w środku połączenia mógłby skrócić ważność polityki albo dodać ją hostowi bez HTTPS [2]. Jeśli odpowiedź zawiera kilka takich nagłówków, przetwarzany jest tylko pierwszy [1].

Przy kolejnej wizycie przeglądarka, zanim załaduje adres http, sprawdza nazwę domeny na liście hostów HSTS. Przy dopasowaniu, jeszcze przed wysłaniem żądania, zamienia schemat na https, a port 80 na 443 [1] [2]. W Chromium ta zamiana jest wewnętrznym przekierowaniem z kodem 307, wybranym po to, by zachować metodę żądania, np. POST [7]. Na znanym hoście HSTS przeglądarka musi zerwać połączenie przy każdym błędzie bezpiecznego transportu [1] i nie pozwala użytkownikowi ominąć ostrzeżenia o certyfikacie [2] [4].

RYS. 1.1Pierwsza wizyta i kolejna z HSTS

Pierwsze żądanie nie jest chronione: host HSTS, który dostaje żądanie przez HTTP, powinien odpowiedzieć stałym przekierowaniem na HTTPS [1], ale tę odpowiedź atakujący może jeszcze przechwycić. Lukę łagodzi lista wstępnie załadowana (ang. preload list), czyli polityka HSTS wpisana do przeglądarki przez jej producenta [1].

RYS. 1.2Od nagłówka do listy preload

Standardy i specyfikacje

  • RFC 6797 (listopad 2012) definiuje nagłówek Strict-Transport-Security oraz dyrektywy max-age i includeSubDomains. Jako zagrożenia, którym mechanizm ma przeciwdziałać, wymienia pasywnych i aktywnych atakujących w sieci oraz błędy twórców witryn [1]. Wartość max-age=0 oznacza polecenie, by przeglądarka przestała traktować host jako znany host HSTS [1]. Specyfikacja opisuje też listy wstępnie załadowane jako mechanizm konfigurowany przez producentów przeglądarek [1].
  • Dyrektywa preload nie należy do specyfikacji HSTS [2]. Wymagania stawia lista prowadzona przez projekt Chromium: ważny certyfikat, przekierowanie z HTTP na HTTPS na tym samym hoście, wszystkie subdomeny po HTTPS oraz nagłówek na domenie głównej z max-age co najmniej 31536000 sekund, includeSubDomains i preload [3]. Dodatkowe przekierowanie wysyłane przez HTTPS też musi mieć nagłówek HSTS [3]. Firefox, Safari i Edge używają list opartych na liście Chrome [3].
  • OWASP zaleca wartość max-age=63072000; includeSubDomains; preload i zastrzega, że przy błędnej konfiguracji albo problemie z certyfikatem prawowici użytkownicy mogą stracić dostęp do strony [5]. Ściąga OWASP o HSTS wymienia trzy zagrożenia, którym nagłówek zapobiega: ręcznie wpisany lub zapisany w zakładkach adres http, odnośniki po HTTP w aplikacji przeznaczonej dla HTTPS oraz akceptację nieprawidłowego certyfikatu [4].

Zagrożenia i skutki

SSL stripping. Moxie Marlinspike na konferencji Black Hat DC w 2009 roku zwrócił uwagę, że użytkownicy trafiają na HTTPS na dwa sposoby: klikając odnośnik albo przez przekierowanie 302, czyli zawsze najpierw przez HTTP [6]. Opisane przez niego narzędzie sslstrip obserwuje ruch HTTP, zamienia odnośniki https:// na http:// oraz nagłówki Location, a do serwera łączy się już po HTTPS [6]. Serwer nie widzi różnicy, a przeglądarka nie wyświetla ostrzeżeń [6]. Jako wynik 24 godzin działania tej techniki autor podał 117 kont poczty, 16 numerów kart płatniczych, 7 loginów PayPal i ponad 300 innych danych logowania [6]. Ściąga OWASP o HSTS wskazuje sslstrip jako materiał źródłowy [4].

Pierwsza wizyta. HSTS zaczyna działać dopiero po co najmniej jednym bezpiecznym połączeniu z hostem i odebraniu nagłówka [2]. RFC 6797 nazywa to podatnością bootstrap MITM: użytkownik wpisuje adres albo klika odnośnik http do hosta, którego przeglądarka jeszcze nie zna [1]. Wpis na liście preload tę lukę łagodzi [2].

Subdomeny bez HTTPS. Z includeSubDomains każda subdomena bez poprawnie skonfigurowanego bezpiecznego połączenia staje się dla przeglądarki nieosiągalna [1]. Bez tej dyrektywy pozostaje natomiast możliwy atak przez ciasteczka, którymi mogą manipulować subdomeny [4].

Trudne wycofanie. Domenę można usunąć z listy preload, ale zmiana dociera do użytkowników z aktualizacją Chrome po miesiącach [3]. Dlatego lista zaleca zgłoszenie dopiero wtedy, gdy cała witryna i wszystkie subdomeny mogą długoterminowo działać po HTTPS, oraz stopniowe podnoszenie max-age [3].

Prywatność. Zapamiętywana polityka HSTS może posłużyć do identyfikacji użytkowników bez ciasteczek [4]. RFC 6797 opisuje to jako możliwą formę śledzenia [1].

Przykłady

Nagłówek albo sytuacjaSkutek w przeglądarce
brak nagłówkabrak polityki; każde wejście przez http:// może zostać przechwycone [2] [6]
max-age=31536000; includeSubDomainshost i subdomeny tylko po HTTPS przez rok [2]
max-age=63072000; includeSubDomains; preloadspełnia wymagania listy preload [3]
max-age=300, potem 604800, potem 2592000 (z includeSubDomains)etapowe wdrożenie: 5 minut, tydzień, miesiąc [3]
max-age=0przeglądarka przestaje traktować host jako znany host HSTS [1]
nagłówek wysłany po HTTPignorowany [1]
includeSubDomains, subdomena bez HTTPSsubdomena nieosiągalna [1]
błąd certyfikatu na znanym hoście HSTSpołączenie zerwane, bez możliwości obejścia [1] [2]
TAB. 1.1Przypisy7
  1. [1] RFC 6797 — HTTP Strict Transport Security (HSTS) · IETF
  2. [2] Strict-Transport-Security header · MDN Web Docs
  3. [3] HSTS Preload List Submission · Chromium Project
  4. [4] HTTP Strict Transport Security Cheat Sheet · OWASP
  5. [5] HTTP Security Response Headers Cheat Sheet · OWASP
  6. [6] Moxie Marlinspike — New Tricks For Defeating SSL In Practice (Black Hat DC 2009) · Black Hat
  7. [7] net/url_request/url_request_http_job.cc — kod źródłowy Chromium · Chromium Project
ARK. 2

STATS

wyniki z systemu · tylko liczby zbiorcze
TAB. 2.1Odczyty per strona

Ten parametr nie zapisuje odczytu per strona — przebieg zostawia tylko ustalenia, więc liczby sprawdzonych stron i wyników „ok” system nie ma. Pojawią się po wdrożeniu zapisu przebiegów per strona per parametr.

TAB. 2.3Ustalenia

Ten parametr nie otworzył jeszcze żadnego ustalenia w bazie LAB247. Pusto nie znaczy „czysto” — znaczy, że nic nie przekroczyło reguły.

TAB. 2.4Przebiegi z tym sposobem sprawdzeniaod 09.09.2026
Przebiegów
33sposób security_headers
W 30 dni
33przebiegów
Ostatni
19.09.2026start przebiegu
Stron w przebiegach
33 przebiegów bez liczby stron
ARK. 3

CARD

karta z kodu CREATO_PING, odczyt 16.09.2026
RYS. 3.1Droga parametru przez system: Nagłówek HSTS
TAB. 3.1Pomiarpliki: 4
Obszar i ważnośćBezpieczeństwo · wysoka (B14)
Workflow i częstotliwośćcreato_ping_security_v2 · P3 działa na LAB247cron co 24 h, T1–T3; T4 raz po anomalii · Dokładny skan. dns_integrity porównuje NS, MX, SPF i DMARC z wzorcem z poprzedniego przebiegu.
Sonda i helpersposób security_headers · CREATO_PING/helpers/security_headers.py
Testy
  1. Tylko przebieg P3; domena bez rekordu A pominięta już na wstępie.
  2. HEAD https://domena z podążaniem za przekierowaniami — nagłówki czytane wyłącznie z odpowiedzi końcowej; kod 405 = druga próba GET.
  3. Sprawdzana tylko obecność Strict-Transport-Security; wartość (max-age, includeSubDomains, preload) nie jest czytana.
  4. Jedno żądanie obsługuje sześć nagłówków bezpieczeństwa; strony w przebiegu sprawdzane po kolei.
Typ wyniku0 albo 1 ustalenie missing_hsts
Jednostkabrak — wynik jakościowy (obecność nagłówka)
Próg i regułaTimeout 6,0 s, połączenie 2,0 s (stała w helperze). Reguła: brak nagłówka = missing_hsts; nagłówek z dowolną wartością, także max-age=0, = ok.
Gdzie leżą pokrętłaCREATO_PING/helpers/security_headers.py → _CHECKS, _TIMEOUTCREATO_PING/helpers/security_runner.py → _TASK_SEVERITIES (dalej idą tylko urgent i high)CREATO_PING/config/incident_policy.toml → [finding] missing_hsts
Retencja odczytówŻadna: przebieg nie zapisuje odczytu, a przy gate=false nie powstaje też subtask. Ustalenia w bazie LAB247 pochodzą z importu ClickUp sprzed zmiany polityki.
Znane rozbieżności
  1. Sprawdzana jest sama obecność nagłówka: max-age=0 albo wartość bez sensu przechodzą jako ok.
  2. Błąd sieci albo timeout zwraca pustą listę — nieodróżnialne od „nagłówek jest”.
  3. Odpowiedź 403 z WAF-a albo 5xx oceniana jak zwykła strona: brak HSTS na stronie blokady daje fałszywe ustalenie.
  4. Powaga niespójna: helper mówi wysoka, polityka normalna; przez filtr przebiegu przechodzi tylko dzięki wartości z helpera.
  5. Pośrednie przekierowania nie są badane, a lista preload wymaga HSTS także na nich.
kandydaci do pętli: kod a opis parametru albo specyfikacja
Karta przepisana zCREATO_PING/helpers/security_headers.py · CREATO_PING/helpers/security_runner.py · CREATO_PING/config/incident_policy.toml · CREATO_PING/workflows/_prod/creato_ping_security_v2.json · odczyt 16.09.2026
TAB. 3.2Co oznacza failtypów ustaleń: 1

Helper zgłasza powagę wysoką, więc ustalenie przechodzi filtr przebiegu. Polityka nadpisuje je na normalne, bez skutku i gate=false: brak subtaska, status strony bez zmian. Przebieg produkcyjny idzie z --no-stats, więc nie zostaje nawet wpis w statystykach dziennych. Utwardzenie, nie incydent.

UstaleniePowagaPewnośćSkutekSubtask / alarmCo zrobić
Brak HSTSmissing_hstsNormalneEwidentnebez wpływunie / nieDodaj nagłówek HSTS w konfiguracji serwera.
ARK. 4

LOOP

pętli: 1
RYS. 4.1Pętla parametru — sześć etapów
TAB. 4.1Trafność, 30 dnialarmy · prawdziwe · fałszywe · bez rozstrzygnięcia

Trafności jeszcze nie liczymy: zamknięcie subtaska nie niesie dziś werdyktu (prawdziwy / fałszywy / nie dało się sprawdzić). Cztery liczby pojawią się, gdy każde zamknięcie dostanie werdykt — to warunek startu pętli 1.

TAB. 4.2Pętle1 · zmian: 1 · wpływających na cały system: 1
Brak HSTS przestaje zakładać zadanie „podatna”zamknięta historyczna 2026-07-11 → 2026-07-15

Sygnał: Przegląd polityki incydentów: brak nagłówka HSTS zakładał subtask „podatna”, choć to brak utwardzenia, nie incydent.

  1. 1. Zbiórkaręcznieodczyt z nocnego skanu, bez zapisu per strona
  2. 2. Werdyktręczniewłaściciel zatwierdził tabelę polityki
  3. 3. Miarabrakliczników trafności wtedy nie było
  4. 4. Kartabrakkarta parametru powstała 2026-09-16
  5. 5. Zmianazrobionenagłówki bezpieczeństwa: gate=false
  6. 6. Replaybrakbrak zapisanych odczytów do replayu
DataZmianaPowódWpływ na systemCommit · replay
2026-07-15missing_hsts: z „wysokie → podatna” na normalne, bez skutku, gate=false, bez alarmu. Pozostałe nagłówki dostały gate=false w tej samej tabeli, ale bez skutku: helper nadaje im powagę normalną albo niską, więc i wcześniej nie przechodziły filtra przebiegu.config/incident_policy.toml · helpers/incident_policy.py · helpers/clickup_writer_v2.pyNagłówek to dobra praktyka utwardzenia, a nie aktywny incydent; mniej szumu na tablicy zadań.cały system To samo wydanie przeniosło decyzję „zakładać zadanie czy nie” z progu powagi na pole gate w polityce — dla wszystkich ustaleń bezpieczeństwa.d59385ebez replayuzatwierdził: właściciel, 2026-07-11 (cała tabela polityki)
Blog 24/7
20.09Zastrzeżony PESEL: zmiana raz na 30 minut, blokada przy wypłaciedobreprogramy.pl20.09Fałszywe SMS-y od GITD o mandacie za autostradę wyłudzają dane kartyinstalki.pl20.09Pakiet npm indexed-btree omija blokadę skryptów instalacyjnychbleepingcomputer.com19.09SolarWinds łata CVE-2026-28326 w Access Rights Manager, zdalny kod bez logowaniathehackernews.com19.09Orkes Conductor: luka CVE-2026-58138 atakowana w sieci, poprawka w wersji 3.30.2thehackernews.com19.09Trzy luki jądra Linux w katalogu CISA KEV, Red Hat potwierdza aktywne atakithehackernews.com18.09Publiczne exploity na cztery luki jądra Linux dają lokalnie uprawnienia rootthehackernews.com18.09Brevo: skradziony klucz API Cloudflare i skrypty ClickFix na stronach klientówbleepingcomputer.com18.09WaterPlum z Korei Północnej zainfekowała 30 000 urządzeń w 100 krajachtherecord.media18.09Jedna zgoda OAuth daje napastnikowi dostęp do poczty i plików mimo MFAdarkreading.com