SiteScan.top

Nagłówki bezpieczeństwa HTTP: minimum, które warto włączyć dziś

CSP, HSTS, X-Content-Type-Options i reszta: co realnie chroni, co jest przestarzałe i w jakiej kolejności wdrażać bez awarii.

Bezpieczeństwo · Opublikowano: 10 czerwca 2026 · 2 min czytania · Марк Лебедев

Nagłówki bezpieczeństwa to rzadki przypadek, gdy kilka linii w konfiguracji zamyka całe klasy ataków. I równie rzadki, gdy nieostrożne wdrożenie psuje serwis w sekundę. Kolejność jest więc równie ważna jak treść.

Zacznijcie od bezpiecznych

Te trzy można włączyć niemal bez ryzyka:

X-Content-Type-Options: nosniff — zabrania przeglądarce zgadywania typu treści. Zamyka scenariusz, w którym wgrany przez użytkownika „tekstowy" plik wykonuje się jako skrypt.

Referrer-Policy: strict-origin-when-cross-origin — przestaje wyciekać pełna ścieżka strony do cudzej analityki. Dziś to domyślne zachowanie większości przeglądarek, ale jawna deklaracja jest pewniejsza.

Strict-Transport-Security: max-age=31536000; includeSubDomains — HSTS, wymusza wyłącznie HTTPS. Uwaga: włączajcie tylko wtedy, gdy cały serwis i wszystkie subdomeny już działają po HTTPS. Szybki rollback jest niemożliwy — przeglądarki pamiętają nagłówek przez cały max-age. Zacznijcie od max-age=300, upewnijcie się, że nic nie padło, i podnoście.

CSP — najbardziej przydatny i najbardziej ryzykowny

Content-Security-Policy określa, skąd wolno ładować skrypty, style i obrazy. Blokuje większość XSS — i psuje serwis, jeśli politykę napisano na wyczucie.

Właściwa droga ma trzy kroki:

  1. Włączcie tryb obserwacji: Content-Security-Policy-Report-Only z adresem raportów. Nic nie jest blokowane, ale widzicie, co zostałoby zablokowane.
  2. Zbierzcie raporty przez dwa tygodnie i dopiszcie do polityki wszystko legalne — widżety, fonty, analitykę.
  3. Przełączcie na nagłówek produkcyjny.

Minimalna sensowna polityka dla serwisu bez skryptów inline:

Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' https://fonts.googleapis.com; font-src https://fonts.gstatic.com; img-src 'self' data:; frame-ancestors 'none'; base-uri 'self'

Dyrektywa frame-ancestors 'none' zastępuje przestarzały X-Frame-Options i zamyka clickjacking.

Czego już nie trzeba

X-XSS-Protection — przestarzały nagłówek, nowoczesne przeglądarki go ignorują, a w starszych sam bywał źródłem podatności. Feature-Policy zmienił nazwę na Permissions-Policy.

Jak sprawdzać

Nagłówki ustawia się na kilku poziomach — CDN, reverse proxy, aplikacja — i łatwo je zgubić albo zdublować przy zmianie infrastruktury. Sprawdzajcie nie konfigurację, lecz rzeczywistą odpowiedź na kilku typach URL: strona główna, adres z routingu SPA, plik statyczny, endpoint API. Różnice między nimi to najczęstsze znalezisko audytu.

I pilnujcie regresji: nagłówek przypadkiem zdjęty przy migracji na nowy CDN nie da znaku, dopóki nie będzie za późno.

Przeczytaj także

Sprawdź, ile z tego dotyczy Twojej strony

Darmowe skanowanie pokaże uszkodzone linki, błędy JS i problemy z wydajnością w minutę.