HTTP Headers
Wyświetl nagłówki odpowiedzi i audytuj polityki bezpieczeństwa.
-
No HSTS header — a downgrade attack on a public Wi-Fi can redirect the user to plaintext HTTP.
-
No CSP — a single XSS bug can execute arbitrary scripts on this origin.
-
Page can be framed by any site — vulnerable to clickjacking.
-
fail X-Content-Type-Options +0/10nosniff is missing — IE/old-Edge may execute disguised scripts based on content sniffing.
-
No Referrer-Policy — full URLs (including query strings) leak to every clicked link.
-
No Permissions-Policy — third-party iframes can request sensitive features without restriction.
What does each field mean?
Field reference
Ocena bezpieczeństwa
Zagregowany wynik nagłówków bezpieczeństwa ważony wpływem: HSTS i CSP ważą najwięcej. A+ wymaga poprawnego ustawienia wszystkich pięciu nagłówków; F oznacza brak jakichkolwiek. Użyj jako szybkiej miary pierwszego rzutu oka, a potem zajrzyj do szczegółów per-nagłówek poniżej.
Protokół HTTP
HTTP/1.1 to przestarzały protokół tekstowy. HTTP/2 multipleksuje strumienie po jednym połączeniu TCP (kompresja nagłówków, server push). HTTP/3 działa na QUIC (UDP) — lepiej na łączach niestabilnych i mobilnych. Nowoczesny serwer powinien udostępniać co najmniej HTTP/2.
Opóźnienie
Round-trip od naszego serwera do celu, aż do pierwszego bajtu odpowiedzi. To nie benchmark CDN — wpływają na niego odległość geograficzna, TLS handshake i rozgrzewka serwera. Traktuj jako orientacyjny sygnał świeżości, a nie produkcyjne dane wydajności.
Łańcuch przekierowań
Długi łańcuch (3+ przekierowania) szkodzi SEO i wydajności. Klasyczny wzorzec to <code>http://example.com → https://example.com → https://www.example.com</code>: dwa hopy, akceptowalnie. Powyżej pięciu — błąd konfiguracji.
Strict-Transport-Security (HSTS)
HSTS mówi przeglądarce: "nigdy więcej nie łącz się ze mną po zwykłym HTTP". <code>max-age=15768000</code> (6 miesięcy) to praktyczne minimum; <code>includeSubDomains; preload</code> dopisuje domenę do globalnej listy preload. Po wpisaniu na listę nie da się jej opuścić przez ~12 miesięcy — najpierw skonfiguruj resztę.
Content-Security-Policy (CSP)
CSP określa, skąd mogą się ładować skrypty, style, obrazy i ramki. <code>default-src 'self'</code> to rozsądny baseline; oparte na nonce <code>script-src</code> jest najmocniejsze. Uwaga na <code>unsafe-inline</code> i <code>unsafe-eval</code> — niemal niwelują ochronę CSP przed XSS. Używaj report-uri / report-to do monitoringu.
X-Frame-Options
Ustaw <code>DENY</code>, aby całkowicie zabronić ramek, lub <code>SAMEORIGIN</code>, aby zezwolić tylko na ramki tego samego pochodzenia. Nowoczesnym odpowiednikiem jest <code>frame-ancestors</code> w CSP (bogatsza składnia) — każdy z tych dwóch spełnia nasz audyt.
Referrer-Policy
Określa, co przeglądarka wysyła w nagłówku <code>Referer</code>. <code>strict-origin-when-cross-origin</code> (domyślne w nowoczesnych przeglądarkach) to dobry baseline: pełny URL przy same-origin, jedynie origin przy cross-origin, nic przy downgrade. <code>no-referrer</code> usuwa referer całkowicie; <code>unsafe-url</code> wycieka pełne URL-e przy downgrade — unikać.
Permissions-Policy
Następca Feature-Policy. Pozwala zezwalać / zabraniać API przeglądarki per-origin: <code>camera=(), microphone=(), geolocation=(self)</code>. Głównie defense-in-depth; egzekwowane na iframe, więc bezpieczniejsze zachowanie dla osadzonej treści.
X-Content-Type-Options: nosniff
Bez tego nagłówka przeglądarka może wykonać odpowiedź JSON jako JavaScript, jeśli "wygląda jak skrypt". Ustawienie <code>X-Content-Type-Options: nosniff</code> wymusza honorowanie zadeklarowanego Content-Type. Tani, zawsze bezpieczny do włączenia — nie ma dobrego powodu, by go pomijać.
O tym narzędziu
HTTP Headers pobiera Twój URL prawdziwym żądaniem HTTPS, przechwytuje każdy nagłówek odpowiedzi (oraz każdą pośrednią odpowiedź na trasie przekierowań) i przepuszcza wynik przez audyt bezpieczeństwa pokrywający nowoczesne nagłówki hardeningu: Strict-Transport-Security, Content-Security-Policy, X-Frame-Options / CSP frame-ancestors, X-Content-Type-Options, Referrer-Policy i Permissions-Policy. Każdy nagłówek jest sprawdzany pod kątem obecności, sensowności wartości i luk względem best practices.
Poza audytem wymieniamy każdy nagłówek dosłownie, byś mógł potwierdzić politykę cache'owania (Cache-Control, ETag, Vary), śledzenie CDN (CF-Ray, X-Cache, X-Served-By), kompresję (Content-Encoding: br/gzip) i wszelkie własne nagłówki, które emituje Twój stack. Metoda HTTP (GET lub HEAD), negocjowana wersja HTTP (HTTP/1.1, HTTP/2, HTTP/3) i wersja TLS są raportowane w pasku żądania.
Kiedy używać tego narzędzia
- Hardening bezpieczeństwa. Przed produkcją potwierdź, że HSTS, CSP i reszta są ustawione na bezpieczne wartości — minimum baseline Mozilla Observatory.
- Debugowanie cache. Zobacz dokładnie, jakie
Cache-ControliVaryemituje Twój CMS lub framework — częsta przyczyna "stara wersja się trzyma". - Audyty łańcuchów przekierowań. Wykryj przypadkowe łańcuchy 302-potem-301, pętle HTTP-do-HTTPS-do-innego-hosta i brakującą kanonizację.
- Zachowanie CDN. Potwierdź, że Cloudflare/Fastly/CloudFront faktycznie cache'uje to, co myślisz, czytając nagłówki
Age,X-Cachei specyficzne dla CDN.
Co pokrywa nasz audyt bezpieczeństwa
Dla każdego z sześciu nagłówków hardeningu raportujemy: obecny lub brakujący, rzeczywistą wartość i krótki werdykt ("good", "needs tightening", "vulnerable"). HSTS bezincludeSubDomains, CSP z unsafe-inline lub Referrer-Policy pozostawiony na default są flagowane. Nigdy nie mówimy "idealnej" polityki, bo każda strona jest inna — ale mówimy, które pokrętła nadal są na ustawieniu fabrycznym.
Najczęstsze pytania
Co to jest HSTS i dlaczego ma znaczenie?
max-age (typowo 31536000 = 1 rok), zapobiega atakom SSL-stripping przy kolejnych wizytach. Dodanie includeSubDomains rozszerza ochronę na każdą subdomenę — mocny default dla większości stron, ale upewnij się najpierw, że wszystkie naprawdę obsługują HTTPS.
Brakuje mi CSP — jak bardzo to niebezpieczne?
default-src 'self' blokuje najpopularniejsze ładunki XSS (inline skrypty, zewnętrzne ładowanie skryptów) niemal bezkosztowo. Bardziej restrykcyjne polityki zakazujące inline skryptów wymagają refaktoryzacji, ale dają znacznie silniejszą ochronę.
Czy podążacie za przekierowaniami?
Dlaczego narzędzie pokazuje HTTP/2, choć skonfigurowałem HTTP/3?
Alt-Svc przy pierwszym połączeniu. Nasz checker używa domyślnie HTTP/2 nad TCP, co wciąż robi większość klientów HTTP; jeśli Twój serwer ogłasza HTTP/3 w Alt-Svc, zobaczysz ten nagłówek w wyniku, ale sama odpowiedź pozostanie na HTTP/2. Obecność Alt-Svc to właściwa rzecz do sprawdzenia.