Przejdź do treści
SEOMaster SEOMaster

Test nagłówków bezpieczeństwa — CSP, HSTS i certyfikat

Sprawdź, czym Twój serwer wita przeglądarkę. Liczymy sześć kluczowych nagłówków bezpieczeństwa, oceniamy jakość polityki CSP, weryfikujemy certyfikat i wersję TLS, szukamy mixed content oraz sprawdzamy flagi ciasteczek. Darmowo, bez logowania, dla dowolnej domeny.

Co sprawdza test nagłówków bezpieczeństwa

Sześć kluczowych nagłówków — Strict-Transport-Security, Content-Security-Policy, X-Frame-Options, X-Content-Type-Options, Referrer-Policy i Permissions-Policy. Punktujemy komplet, a brakujące i osłabione wersje wymieniamy z nazwy — razem z gotową wartością do wklejenia.

Jakość polityki, nie jej obecność — Sam nagłówek CSP niczego nie gwarantuje. Polityka z unsafe-inline w script-src, z unsafe-eval albo z dzikim * przepuszcza dokładnie te ataki, przed którymi miała chronić. Sprawdzamy też atrybut integrity na skryptach ładowanych z obcych domen.

Certyfikat, TLS i mixed content — Czy certyfikat jest ważny, zaufany i wystawiony na tę nazwę hosta, ile dni zostało do wygaśnięcia, jaka wersja TLS obsłużyła połączenie oraz czy na stronie po HTTPS nie ma zasobów ładowanych przez http://.

Ciasteczka i utwardzenie — Flagi Secure, HttpOnly i SameSite na ciasteczkach ustawianych przez serwer, nagłówki izolacji cross-origin (COOP, CORP, COEP) oraz plik /.well-known/security.txt z kontaktem do zgłaszania luk.

To jest ocena utwardzenia, a nie test penetracyjny. Czytamy jedną odpowiedź HTTPS i serwowany HTML — czyli dokładnie to, co widzi przeglądarka przy pierwszym kontakcie. Nie badamy zestawów szyfrów, nie weryfikujemy pełnego łańcucha certyfikatu do korzenia i nie testujemy samej aplikacji. Komplet nagłówków nie oznacza, że serwis jest bezpieczny; oznacza, że nie brakuje mu warstwy, którą przeglądarka potrafi wyegzekwować. Wagi i progi opisujemy w metodologii.

Co realnie robi każdy z tych nagłówków

Strict-Transport-Security (HSTS) każe przeglądarce łączyć się z domeną wyłącznie po HTTPS przez zadany czas — także wtedy, gdy ktoś kliknie stary link http://. To zamyka okno na przechwycenie pierwszego żądania w niezaufanej sieci.

Content-Security-Policy (CSP) określa, skąd wolno ładować skrypty, style i ramki. Jest to najskuteczniejsza pojedyncza obrona przed XSS, a zarazem nagłówek, który najłatwiej skonfigurować tak, by wyglądał na obecny i nie chronił.

X-Frame-Options (lub frame-ancestors w CSP) blokuje osadzanie Twojej strony w cudzej ramce, czyli clickjacking — nakładanie niewidocznego interfejsu na przycisk, który użytkownik faktycznie klika.

X-Content-Type-Options: nosniff zabrania przeglądarce zgadywać typ pliku wbrew deklaracji serwera. Bez tego przesłany obrazek potrafi zostać wykonany jako skrypt.

Referrer-Policy ogranicza, ile z adresu Twojej strony wycieka do serwisów zewnętrznych w nagłówku Referer. Ma znaczenie wszędzie tam, gdzie ścieżka URL zawiera identyfikatory.

Permissions-Policy wyłącza API, których strona nie używa — kamerę, mikrofon, geolokalizację — również dla osadzonych na niej treści innych firm.

Minimalna konfiguracja, od której warto zacząć

1. Cztery nagłówki bez ryzyka Te cztery można włączyć praktycznie na każdej stronie bez testów — nie zmieniają sposobu działania serwisu, a zamykają całe klasy ataków.

X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
Referrer-Policy: strict-origin-when-cross-origin
Permissions-Policy: camera=(), microphone=(), geolocation=()

2. HSTS po potwierdzeniu, że całość działa po HTTPS Najpierw upewnij się, że każdy zasób i każde przekierowanie działa po HTTPS. Potem włącz HSTS — przez max-age nie da się go szybko wycofać, bo przeglądarki zapamiętają deklarację.

Strict-Transport-Security: max-age=31536000; includeSubDomains

3. CSP wdrażaj w trybie raportowania Content-Security-Policy-Report-Only stosuje politykę bez blokowania czegokolwiek i wysyła raporty o tym, co zostałoby zablokowane. Dopiero gdy raporty są puste, zamień nazwę nagłówka na egzekwującą.

Content-Security-Policy-Report-Only: default-src 'self'; script-src 'self'; object-src 'none'; base-uri 'self'

4. Usuń furtki z gotowej polityki Jeśli CSP już masz, sprawdź script-src. unsafe-inline i unsafe-eval unieważniają ochronę przed XSS. Skrypty inline podpisuj nonce lub hashem zamiast otwierać całą kategorię.

script-src 'self' 'nonce-R4nd0mPerRequest'

Gdzie się to ustawia

Nagłówki wysyła serwer lub CDN, więc miejsce zależy od stosu: blok add_header w nginx, Header set w Apache, headers w vercel.json, _headers w Netlify, Transform Rules w Cloudflare albo middleware aplikacji. Poprawka jest konfiguracyjna — nie wymaga zmian w kodzie strony.

Jedna pułapka warta zapamiętania: w nginx każdy blok add_header w zagnieżdżonej lokalizacji kasuje wszystkie nagłówki odziedziczone z poziomu wyżej. Dlatego strona potrafi mieć komplet nagłówków na stronie głównej i żadnego na /api albo na plikach statycznych. Skan pokazuje, co faktycznie przyszło w odpowiedzi.

Najczęstsze pytania

Czy nagłówki bezpieczeństwa wpływają na pozycję w Google? Bezpośrednio nie — Google nie potwierdził żadnego z nich jako czynnika rankingowego. Pośrednio tak: HTTPS jest lekkim sygnałem od 2014 roku, a strona z ostrzeżeniem przeglądarki albo przejęta i oznaczona jako niebezpieczna traci ruch natychmiast i niezależnie od pozycji. Nagłówki są też elementem due diligence dla klientów biznesowych.

Mam certyfikat SSL. Czy to nie wystarczy? Certyfikat szyfruje transport między przeglądarką a serwerem i tylko tyle. Nie zapobiegnie wykonaniu wstrzykniętego skryptu, osadzeniu strony w cudzej ramce ani przejęciu ciasteczka sesji przez JavaScript. Tym zajmują się nagłówki, a CSP jest tu najważniejszy.

Czym jest mixed content i dlaczego to problem? To zasób ładowany przez http:// na stronie serwowanej po https://. Przeglądarki blokują aktywne zasoby tego typu (skrypty, style), a pasywne oznaczają ostrzeżeniem i zdejmują kłódkę z paska adresu. Najczęściej chodzi o stare obrazy, zewnętrzne skrypty albo osadzone treści sprzed migracji na HTTPS.

Czy włączenie CSP może zepsuć stronę? Tak, dlatego nigdy nie wdraża się jej od razu w trybie egzekwowania. Użyj Content-Security-Policy-Report-Only: polityka działa, ale niczego nie blokuje, a raporty pokazują, co zostałoby zablokowane. Przełącz na wersję egzekwującą dopiero wtedy, gdy raporty są czyste.

Czy test jest darmowy i czy trzeba się rejestrować? Test jest darmowy i nie wymaga logowania ani podawania e-maila. Bezpieczeństwo to jeden z ośmiu filarów pełnego audytu SEOMaster i trzeci pod względem wagi — po SEO on-page i wydajności.

Powiązane materiały

Nagłówki bezpieczeństwa krok po kroku · Czy strona jest bezpieczna — reputacja domeny · Jak skanujemy