Błąd internetu

Błąd ERR_BLOCKED_BY_CSP – przyczyny i naprawa

Mateusz Sobociński
Autor: Mateusz Sobociński - CEO & Red. Nacz. @ asMAX
8 min. czytania

ERRBLOCKEDBY_CSP (ang. Blocked by Content Security Policy) to komunikat błędu, który pojawia się w narzędziach deweloperskich przeglądarki (np. w zakładce Network w Chrome DevTools) przy wyświetlaniu statusu ładowanego zasobu. Oznacza on, że przeglądarka nie pobrała określonego pliku (JavaScript, CSS, obraz, czcionka, XHR itp.), ponieważ polityka bezpieczeństwa (CSP, Content Security Policy) strony wyraźnie tego zabrania.

CSP to mechanizm bezpieczeństwa, który pozwala właścicielowi strony albo webdeveloperowi określić, skąd mogą pochodzić zasoby ładowane na stronie (np. tylko z własnej domeny, tylko z zaufanych CDN-ów, bez ładowania zewnętrznych skryptów). CSP może być ustawiony przez nagłówek HTTP (najczęściej) lub przez meta tag HTML.

Przykład typowej polityki CSP

Content-Security-Policy: default-src 'self' 

Oznacza to, że przeglądarka pozwoli tylko na ładowanie zasobów z tej samej domeny, z której pochodzi sama strona HTML.

Najczęstsze przyczyny błędu

  • Polityka CSP jest zbyt restrykcyjna – np. blokuje ładowanie skryptów z zewnętrznych serwerów, nawet jeśli są one niezbędne do działania strony.
  • Brak świadomości webmastera – ktoś dodaje nowe generatory bibliotek, CDN-y, widgety społecznościowe, analitykę, ale nie aktualizuje polityki CSP o nowe źródła.
  • Brak wiedzy u frontend developera – ktoś łamie politykę CSP, np. wstawiając bezpośrednio JS w atrybuty HTML (inline scripts), co jest domyślnie blokowane przez CSP.
  • Testowa polityka CSP – czasem wersja stagingowa ma inną politykę niż produkcja, co prowadzi do nieoczekiwanych blokad.
  • Polityka CSP konfliktu z wywołaniami backendowymi – np. czaty, interfejsy API, WebSocket, WebRTC – każdy taki mechanizm wymaga odpowiedniego wpisu w CSP.

Krok po kroku – jak zdiagnozować błąd ERRBLOCKEDBY_CSP

Dla webmastera / web developera

  1. Sprawdź nagłówki odpowiedzi HTTP
    Otwórz narzędzia deweloperskie przeglądarki (F12 → zakładka Network), przeładuj stronę, zerknij na nagłówki odpowiedzi HTTP. Powinieneś znaleźć wpis Content-Security-Policy albo Content-Security-Policy-Report-Only.
  2. Zidentyfikuj zablokowane zasoby
    W zakładce Console lub Network na liście żądań znajdziesz komunikaty o typie blocked:csp lub ERR_BLOCKED_BY_CSP. Sprawdź, który zasób jest blokowany i z jakiego źródła jest ładowany.
  3. Zdekoduj politykę CSP
    Skorzystaj z narzędzi online (np. Google CSP Evaluator), aby zobaczyć, czego konkretnie brakuje w polityce.
  4. Wyloguj się z polityki CSP (CSP-Report-Only)
    Jeśli masz ustawioną politykę CSP-Report-Only, przeglądarka nie blokuje zasobów, a jedynie raportuje naruszenia. Możesz włączyć raportowanie na własny serwer (parametr report-uri lub report-to), aby zbierać szczegółowe dane o potencjalnych problemach.
  5. Dodaj brakujące źródła do polityki
    Jeśli np. blokowany jest skrypt z Google Analytics, dodaj do polityki wpis script-src https://www.google-analytics.com. Analogicznie dla innych zasobów.
  6. Przetestuj zmiany
    Przeładuj stronę, sprawdź w DevTools, czy nie pojawiają się nowe bloki.

Dla użytkownika końcowego

Komunikat „ERRBLOCKEDBY_CSP” nie jest błędem po stronie Twojej przeglądarki ani wtyczek – to informacja, że właściciel strony celowo zablokował ładowanie danego zasobu. Jako użytkownik nie możesz obejść tej polityki bez naruszania bezpieczeństwa przeglądarki.
Możesz jedynie poinformować obsługę strony (kontakt, e-mail, formularz zgłoszeniowy) o wystąpieniu błędu i podać, która część strony lub jej funkcjonalność nie działa.

Pamiętaj
Jeśli na stronie widzisz błąd ERRBLOCKEDBYCLIENT (a nie ERRBLOCKEDBYCSP), oznacza to najczęściej, że Twoja przeglądarka lub jej wtyczka (np. AdBlock) blokuje niektóre zasoby. W takim przypadku postępuj zgodnie z instrukcją czyszczenia pamięci podręcznej, resetu przeglądarki lub czasowego wyłączenia blokerów reklam.

Instrukcje krok po kroku – jak naprawić błąd ERRBLOCKEDBY_CSP

Krok 1: Zidentyfikuj politykę CSP

Jak sprawdzić politykę CSP?

  • Otwórz narzędzia deweloperskie (F12 w Chrome/Firefox).
  • Przejdź do zakładki Network.
  • Kliknij w nazwę dokumentu (góra listy, np. index.html).
  • Przewiń w dół nagłówków odpowiedzi i znajdź Content-Security-Policy.

Krok 2: Znajdź zablokowane zasoby

  • W DevTools przejdź do zakładki Console.
  • Przeładuj stronę.
  • Wyszukaj komunikaty typu blocked:csp lub ERRBLOCKEDBY_CSP.
  • Zapisz sobie, który zasób jest blokowany i z jakiego adresu.

Krok 3: Zmodyfikuj politykę CSP

Zmiana przez nagłówek HTTP (serwer WWW)

Przykład
Masz w polityce:
Content-Security-Policy: default-src 'self' A chcesz pobierać skrypty z Google Analytics i obrazki z zewnętrznego CDN.
Nowa polityka może wyglądać tak:

Content-Security-Policy: default-src 'self'; script-src 'self' https://www.google-analytics.com; img-src 'self' https://cdn.example.com; 

Jak edytować nagłówek?

  • Apache – Dodaj w pliku .htaccess lub konfiguracji wirtualnego hosta, np.
    Header set Content-Security-Policy "default-src 'self'; script-src 'self' https://www.google-analytics.com; img-src 'self' https://cdn.example.com;"
  • Nginx – Dodaj do bloku server lub location, np.
    add_header Content-Security-Policy "default-src 'self'; script-src 'self' https://www.google-analytics.com; img-src 'self' https://cdn.example.com;" always;
  • PHP – Możesz dodać PHP w pliku index.php (najlepiej jako pierwszą instrukcję).
    header("Content-Security-Policy: default-src 'self'; script-src 'self' https://www.google-analytics.com; img-src 'self' https://cdn.example.com;");

Zmiana przez meta tag HTML

Jeśli nie masz dostępu do serwera, możesz ustawić politykę przez meta tag w sekcji <head> dokumentu HTML:

<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' https://www.google-analytics.com; img-src 'self' https://cdn.example.com;"> 

Nie jest to jednak oficjalnie polecane i może być mniej skuteczne niż nagłówek HTTP.

Krok 4: Testuj i raportuj naruszenia

  • Przeładuj stronę i sprawdź w DevTools, czy zasoby są ładowane.
  • Skorzystaj z raportów CSP – Jeśli korzystasz z CSP-Report-Only, sprawdzaj zgłoszenia o naruszeniach polityki.
  • Ważne – Po każdej zmianie polityki CSP zawsze testuj stronę na różnych przeglądarkach i urządzeniach.

Najczęstsze pułapki i dobre praktyki

  • Nie dodawaj znaku „*” (wildcarda) do security policy bez potrzeby – to bardzo słabe rozwiązanie. Staraj się precyzyjnie określać źródła.
  • CSP nie zadziała na inline scripts/styles – jeśli musisz używać event handlerów bezpośrednio w HTML, dodaj wpis 'unsafe-inline' do dyrektywy script-src lub style-src.
  • Czasem konieczne jest użycie 'unsafe-eval' – np. jeśli korzystasz z dynamicznie generowanych skryptów przez JS.
  • Używaj 'strict-dynamic' – jeśli Twój projekt tego wymaga i korzystasz z zaufanych skryptów z hashem.
  • Dodaj dyrektywy frame-src, connect-src, font-src, media-src – jeśli na stronie są iframe, czaty, API, czcionki, audio/video.
  • Regularnie monitoruj raporty CSP – utwórz endpoint na serwerze, który będzie zbierał informacje o naruszeniach polityki.

Podsumowanie tabelaryczne: ERRBLOCKEDBYCLIENT vs ERRBLOCKEDBYCSP

Typ błędu Przyczyna Kto naprawia? Jak naprawić?
ERRBLOCKEDBY_CLIENT Blokada przez plugin/wtyczkę Użytkownik/programista Wyłączenie wtyczki, reset przeglądarki
ERRBLOCKEDBY_CSP Polityka bezpieczeństwa CSP Webmaster/developer Dopisanie adresu do polityki CSP

Gdzie szukać dalszej pomocy?

  • Google CSP Evaluator – narzędzie do analizy i oceny polityki CSP.
  • DevTools przeglądarki – źródło wiadomości o konkretnych błędach.
  • Dokumentacje przeglądarek i standardów – np. MDN Web Docs czy dokumentacja CSP.
  • Fora developerów – jeśli napotkasz dziwny błąd, zapytaj społeczność webdev na Stack Overflow.

ERRBLOCKEDBY_CSP to nie uszkodzenie przeglądarki ani strony, a mechanizm ochrony bezpieczeństwa. Zrozumienie działania CSP i regularne testowanie polityki pozwala uniknąć problemów z ładowaniem zasobów i zapewnić użytkownikom wysokie bezpieczeństwo oraz komfort korzystania ze strony.

Ostatnia aktualizacja polityki CSP powinna być częścią każdej ważniejszej aktualizacji strony lub wdrożenia nowych funkcji.

Podziel się artykułem
CEO & Red. Nacz. @ asMAX
Obserwuj:
Ex-redaktor w GW (Technologie) i ex-PR w koreańskim start-upie technologicznym. Absolwent Imperial College Business School (MBA) i Politechniki Warszawskiej. Od 2025 CEO i redaktor naczelny w asMAX.
Brak komentarzy

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *