Błąd internetu

Błąd ERR_BLOCKED_BY_ORB – przyczyny i naprawa

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

Błąd ERRBLOCKEDBY_ORB to jedna z najczęstszych przyczyn problemów z ładowaniem zasobów na stronach internetowych. Ten błąd bezpieczeństwa może skutecznie zablokować dostęp do obrazków, skryptów JavaScript, arkuszy stylów i innych elementów strony, powodując nieprawidłowe wyświetlanie treści.

Czym jest ERRBLOCKEDBY_ORB

ERRBLOCKEDBY_ORB oznacza błokowanie przez mechanizm Opaque Response Blocking (ORB), który jest funkcją bezpieczeństwa zaimplementowaną w przeglądarkach internetowych. Mechanizm ten chroni przed atakami typu Spectre i innymi atakami kanału bocznego, które mogłyby potencjalnie ujawnić wrażliwe dane z zasobów pochodzących z różnych domen.

ORB działa poprzez blokowanie renderowania określonych typów zasobów, gdy są one ładowane z innej domeny i nie posiadają odpowiednich nagłówków Cross-Origin Resource Sharing (CORS). Jest to mechanizm ochronny przeglądarki, który ma na celu zwiększenie bezpieczeństwa użytkowników.

Główne przyczyny błędu

Brakujące lub nieprawidłowe nagłówki CORS

Najczęstszą przyczyną błędu ERRBLOCKEDBY_ORB są brakujące lub niepoprawnie skonfigurowane nagłówki CORS na serwerze hostującym zasób. Serwer musi wysłać odpowiedni nagłówek Access-Control-Allow-Origin w odpowiedzi HTTP, aby poinformować przeglądarkę, że bezpieczne jest załadowanie zasobu z innej domeny.

Niepasujące typy zasobów

Przeglądarka może wykryć, że typ zawartości zasobu nie pasuje do oczekiwanego typu. Na przykład, jeśli serwer wysyła dokument HTML z nagłówkiem Content-Type ustawionym na text/plain, przeglądarka może go zablokować.

Rozszerzenia przeglądarki

Rozszerzenia przeglądarki, szczególnie blokery reklam i inne narzędzia do moderacji treści, mogą interferować z ładowaniem zasobów i błędnie uruchamiać ochronę ORB. Te narzędzia działają poprzez przeszukiwanie stron w poszukiwaniu określonych słów i wzorców, co może spowodować przypadkowe zablokowanie prawidłowych plików.

Problemy z pamięcią podręczną

Przestarzałe dane w pamięci podręcznej mogą powodować nieprawidłowe stosowanie przez przeglądarkę zabezpieczeń ORB.

Nieprawidłowa konfiguracja serwera

Błędna konfiguracja serwera może prowadzić do wysłania niewłaściwych nagłówków lub serwowania zasobów z nieprawidłowymi typami zawartości.

Instrukcje naprawy dla web developerów

Konfiguracja nagłówków CORS

Najprostszym rozwiązaniem jest dodanie odpowiedniego nagłówka Access-Control-Allow-Origin do odpowiedzi serwera. Oto przykład dla serwera Node.js z Express:

app.get('/resource', (req, res) => { res.setHeader('Access-Control-Allow-Origin', '*'); // Lub konkretna domena res.sendFile(path.join(__dirname, 'public', 'resource.txt')); }); 

Dla Apache możesz dodać następującą linię do pliku .htaccess:

Header set Access-Control-Allow-Origin "*" 

Dla Nginx dodaj do konfiguracji:

add_header Access-Control-Allow-Origin *; 

Weryfikacja typów zawartości

Upewnij się, że nagłówek Content-Type jest prawidłowo ustawiony dla każdego typu zasobu:

  • HTML: text/html
  • JavaScript: application/javascript
  • CSS: text/css
  • Obrazy JPEG: image/jpeg
  • Obrazy PNG: image/png

Konfiguracja CDN

Jeśli korzystasz z sieci dostarczania treści (CDN), upewnij się, że jest prawidłowo skonfigurowana do przekazywania nagłówków CORS. Sprawdź ustawienia swojego dostawcy CDN i skonfiguruj odpowiednie zasady nagłówków.

Rozwiązanie problemów z iframe

Jeśli zasób jest ładowany w iframe z innej domeny, upewnij się, że zasób ma prawidłowe nagłówki CORS. Alternatywnie, rozważ użycie postMessage do komunikacji między iframe a stroną główną.

Instrukcje rozwiązywania problemów dla użytkowników końcowych

Resetowanie ustawień przeglądarki

Rozpocznij od zresetowania przeglądarki do ustawień domyślnych. W Google Chrome:

  1. Wpisz chrome://settings/ w pasku adresu
  2. Przewiń w dół do sekcji Prywatność i bezpieczeństwo
  3. Wybierz Wyczyść dane przeglądania
  4. Ustaw zakres czasowy na Cały czas
  5. Zaznacz wszystkie trzy opcje
  6. Kliknij Wyczyść dane

Resetowanie flag Chrome

Aby zresetować eksperymentalne funkcje Chrome:

  1. Wpisz chrome://flags/ w pasku adresu
  2. Kliknij Reset all w prawym górnym rogu
  3. Uruchom ponownie przeglądarkę

Wyłączanie rozszerzeń przeglądarki

Tymczasowo wyłącz wszystkie rozszerzenia przeglądarki, szczególnie blokery reklam:

  1. Przejdź do chrome://extensions/
  2. Wyłącz wszystkie rozszerzenia jedne po drugim
  3. Sprawdź, czy problem został rozwiązany
  4. Jeśli tak, włączaj rozszerzenia pojedynczo, aby zidentyfikować powodujące problem

Aktualizacja przeglądarki

Upewnij się, że korzystasz z najnowszej wersji przeglądarki, ponieważ starsze wersje mogą mieć problemy z kompatybilnością mechanizmów bezpieczeństwa.

Zaawansowane metody debugowania

Analiza ruchu sieciowego

Użyj narzędzi deweloperskich przeglądarki do analizy żądań HTTP:

  1. Otwórz Narzędzia deweloperskie (F12)
  2. Przejdź do zakładki Network
  3. Odśwież stronę i sprawdź, które zasoby są blokowane
  4. Sprawdź nagłówki odpowiedzi dla zablokowanych zasobów

Korzystanie z plików HAR

Pliki HAR (HTTP Archive) pozwalają na szczegółową analizę ruchu sieciowego. Możesz wygenerować plik HAR i przeanalizować błędy ERRBLOCKEDBY_ORB w kontekście całej sesji przeglądania.

Testowanie CORS

Użyj narzędzi online do testowania konfiguracji CORS lub napisz prosty skrypt testowy:

fetch('https://example.com/api/resource') .then(response => console.log('Sukces:', response)) .catch(error => console.error('Błąd CORS:', error)); 

Najlepsze praktyki prewencji

Dla deweloperów

  • Zawsze konfiguruj nagłówki CORS na serwerze produkcyjnym
  • Testuj zasoby międzydomenowe w różnych przeglądarkach
  • Monitoruj logi serwera pod kątem błędów CORS
  • Używaj konkretnych domen zamiast wildcards (*) w produkcji
  • Dokumentuj konfigurację CORS dla zespołu

Dla administratorów systemów

  • Regularnie aktualizuj konfigurację serwera zgodnie z najnowszymi standardami bezpieczeństwa
  • Monitoruj wydajność CDN i sprawdzaj poprawność przekazywania nagłówków
  • Implementuj monitoring błędów sieciowych
  • Twórz kopie zapasowe konfiguracji przed wprowadzaniem zmian

Podsumowanie

Błąd ERRBLOCKEDBY_ORB, choć może wydawać się skomplikowany, ma jasne przyczyny i rozwiązania. Kluczem do skutecznego rozwiązania tego problemu jest rozumienie mechanizmów bezpieczeństwa przeglądarek i prawidłowa konfiguracja nagłówków CORS. Zarówno deweloperzy, jak i użytkownicy końcowi mają do dyspozycji skuteczne narzędzia i metody, które pozwalają na szybkie zdiagnozowanie i naprawę tego błędu.

Pamiętaj, że mechanizm ORB został wprowadzony w celu zwiększenia bezpieczeństwa, dlatego ważne jest, aby rozwiązania były implementowane w sposób, który nie narusza integralności zabezpieczeń aplikacji webowej.

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 *