Jak naprawić brakujący nagłówek Content-Security-Policy (CSP) | Scanthra

Scanthra · 7 min czytania · Zaktualizowano Maj 2026

Maj 2026
TL;DR: Brakujący nagłówek CSP (Content Security Policy) to najczęstsze wykrycie w raportach Scanthra. Jeden wstrzyknięty skrypt może uruchomić dowolny kod w przeglądarce odwiedzającego. Możesz dodać bezpieczny startowy CSP w mniej niż 10 minut — bez psucia strony — wdrażając go najpierw w trybie report-only.

Czym jest nagłówek Content-Security-Policy?

CSP to nagłówek odpowiedzi, który mówi przeglądarce dokładnie, z jakich źródeł może ładować skrypty, style, obrazy i ramki. Jeśli coś na stronie spróbuje załadować skrypt z domeny spoza twojej listy dozwolonych, przeglądarka odmówi. To jak lista gości u bramkarza przy wejściu.

Bez CSP każdy wstrzyknięty tag <script> — z zainfekowanej wtyczki, literówki w widżecie zewnętrznym, zapisanego XSS w komentarzu — działa z pełnym dostępem do ciasteczek (cookie), danych formularzy i sesji odwiedzających. Z rygorystycznym CSP to samo wstrzyknięcie jest cicho blokowane i zapisywane w logu.

Dlaczego to ważne dla małej firmy

Dwa rzeczywiste przykłady, które widzimy co tydzień w raportach Scanthra:

CSP jest też wprost zalecany przez OWASP (standard bezpieczeństwa aplikacji), oczekiwany przez większość kwestionariuszy ubezpieczeń cybernetycznych i — dla firm w UE — rozsądną częścią „odpowiednich środków technicznych" wymaganych przez RODO Artykuł 32 i dyrektywę NIS2 (dyrektywa UE o cyberbezpieczeństwie).

Bezpieczne wdrożenie: najpierw tryb report-only

Główny powód, dla którego małe strony unikają CSP, to strach przed zepsuciem wyglądu. Rozwiązanie: wdróż najpierw Content-Security-Policy-Report-Only. Przeglądarka sprawdza politykę i raportuje naruszenia, ale ich nie egzekwuje. Obserwuj logi przez tydzień, napraw to, co jest blokowane, a potem przełącz na nagłówek egzekwujący.

Polityka startowa, która działa dla większości stron

Content-Security-Policy-Report-Only:
  default-src 'self';
  script-src 'self' https://www.googletagmanager.com https://www.google-analytics.com;
  style-src  'self' 'unsafe-inline' https://fonts.googleapis.com;
  font-src   'self' https://fonts.gstatic.com;
  img-src    'self' data: https:;
  connect-src 'self' https://www.google-analytics.com;
  frame-ancestors 'none';
  base-uri 'self';
  form-action 'self';
  upgrade-insecure-requests

Ta polityka zakłada, że serwujesz wszystko z własnej domeny plus Google Analytics i Google Fonts. Niemal każdy WordPress, Shopify lub strona statyczna mieści się tutaj z drobnymi modyfikacjami. Usuń lub zmień linie GA/Fonts, jeśli ich nie używasz.

Jak wdrożyć na nginx

add_header Content-Security-Policy-Report-Only "default-src 'self'; script-src 'self' https://www.googletagmanager.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; img-src 'self' data: https:; frame-ancestors 'none'; base-uri 'self'; form-action 'self'; upgrade-insecure-requests" always;

Jak wdrożyć na Apache

Header always set Content-Security-Policy-Report-Only "default-src 'self'; script-src 'self' https://www.googletagmanager.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; img-src 'self' data: https:; frame-ancestors 'none'; base-uri 'self'; form-action 'self'; upgrade-insecure-requests"

Jak wdrożyć na Cloudflare

W panelu Cloudflare przejdź do Reguły → Reguły transformacji → Modyfikacja nagłówków odpowiedzi HTTP. Dodaj nagłówek o nazwie Content-Security-Policy-Report-Only z powyższą polityką jako wartością. To najszybsza opcja, jeśli nie masz dostępu do powłoki serwera.

Jak wdrożyć na WordPress

Zainstaluj wtyczkę do nagłówków, np. Headers Security Advanced & HSTS WP, albo dodaj nagłówki przez panel hostingowy. Unikaj ustawiania CSP w pliku functions.php motywu — wiele motywów dynamicznie ładuje zasoby wp-admin lub edytora bloków i to psuje środowisko edytora.

Typowe pułapki

Od report-only do egzekwowania

Po tygodniu w trybie report-only bez nowych naruszeń na prawdziwym ruchu zmień nazwę nagłówka z Content-Security-Policy-Report-Only na Content-Security-Policy. Polityka jest teraz egzekwowana. Zachowaj endpoint raportowania — natychmiast wychwycisz nowe naruszenia, gdy aktualizacja wtyczki wprowadzi nieoczekiwany skrypt.

Jak Scanthra to wykrywa

Nasz moduł Security Headers wykonuje jedno żądanie GET do twojej strony głównej i odczytuje nagłówki odpowiedzi. Jeśli Content-Security-Policy jest brakujący, słaby lub zawiera unsafe-eval, dostaniesz wykrycie z poziomem zagrożenia, przystępnym opisem i gotowym do skopiowania rozwiązaniem — w tym samym formacie co w tym artykule.

Chcesz wiedzieć, czy twoja strona ma ten problem?

Scanthra przeprowadza przyjazną, pasywną kontrolę i wysyła ci zrozumiały raport PDF na e-mail.

Sprawdź swoją stronę za darmo