By Piotr Sikora

  • javascript

Miałem sytuację w zeszłym tygodniu z żądaniami do serwera z Vue używając Axios, gdzie pole data było puste. Serwer miał włączony CORS (Cross-Origin Resource Sharing).

Najważniejszą rzeczą jest to, że było to żądanie GET uruchomione w Chrome. Gdy uruchomiłem mój url w przeglądarce - była odpowiedź w formacie JSON. Przetestowałem to żądanie w Swagger i odpowiedź była widoczna. Dodatkowo przetestowałem to z curl i odpowiedź również była widoczna.

Więc następny pomysł... sprawdźmy to w Firefox. I... działało dobrze! Ale co się dzieje z Chrome?

W konsoli było widoczne "ostrzeżenie":

Ostrzeżenie konsoli Chrome pokazujące Cross-Origin Read Blocking (CORB) blocked cross-origin response

Cross-Origin Read Blocking (CORB) blocked cross-origin response with MIME type application/json. See https://www.chromestatus.com/feature/5629709824032768 for more details.

Więc czym jest CORB?

Cross-Origin Read Blocking (CORB) to algorytm, który może identyfikować i blokować wątpliwe ładowania zasobów cross-origin w przeglądarkach internetowych zanim dotrą do strony internetowej. CORB zmniejsza ryzyko wycieku wrażliwych danych, trzymając je dalej od stron internetowych cross-origin. W większości przeglądarek trzyma takie dane poza niezaufanymi kontekstami wykonywania skryptów. W przeglądarkach z Site Isolation może trzymać takie dane całkowicie poza niezaufanymi procesami renderowania, pomagając nawet przeciwko atakom typu side channel jak Spectre.

Źródło: https://chromestatus.com/feature/5629709824032768

A jak rozwiązać problem?

Cross-Origin Read Blocking (CORB) blocked cross-origin response ROZWIĄZANIE

Upewnij się, że te zasoby są serwowane z poprawnym nagłówkiem odpowiedzi "Content-Type" z poniższej listy, oraz nagłówkiem odpowiedzi "X-Content-Type-Options: nosniff". Te nagłówki zapewniają, że Chrome może zidentyfikować zasoby wymagające ochrony, bez polegania na zawartości zasobów.

Źródło: https://www.chromium.org/Home/chromium-security/corb-for-developers/

Mówiąc prosto:

  1. Ustaw nagłówek odpowiedzi: X-Content-Type-Options: nosniff

  2. Sprawdź czy "Content-Type" jest poprawny

Miałeś podobny problem?

Categories

Recent Posts

About Me

Piotr Sikora - Process Automation | AI | n8n | Python | JavaScript

Piotr Sikora

Process Automation Specialist

I implement automation that saves time and money, streamlines operations, and increases the predictability of results. Specializing in process automation, AI implementation, and workflow optimization using n8n, Python, and JavaScript.

n8n Workflows

n8n workflow automation templates

Explore my workflow templates on n8n. Ready-to-use automations for blog management, data collection, and AI-powered content processing.

3Workflow Templates

• Auto-Categorize Blog Posts with AI

• Collect LinkedIn Profiles

• Export WordPress Posts for SEO

Podobne artykuły

Odkryj więcej powiązanych treści

Wykorzystaj moc automatycznie wykonywanych obiektów w JavaScript

Czasami będziesz potrzebował stworzyć automatycznie wykonywany obiekt (na przykład w przypadku zdarzeń load/document ready)

Czysty JavaScript: Przewodnik po metodach prywatnych i publicznych

Czy tworzyłeś własne klasy w czystym JavaScript?

Raspberry Pi node.js i jak zacząć programować GPIO

Zacznij programować GPIO Raspberry Pi z Node.js. Wprowadzenie do projektu PixPress na GitHub. Sprzęt spotyka JavaScript.