← Wszystkie testy
BezpieczeństwoTypowa waga: Niski

Nagłówki izolacji źródła

Sprawdza, czy brakuje nagłówków COOP i CORP, które izolują Twoją stronę przed atakami cross-origin.

Co sprawdza

Ten skaner sprawdza, czy twojej stronie brakuje nagłówków izolacji origin COOP i CORP. Wykrywa brak tych nagłówków, które w przeglądarce oddzielają twoją stronę od innych origin.

Dlaczego to ważne

Bez tych nagłówków twoja strona jest bardziej narażona na pewne ataki cross-origin, w których inna witryna próbuje wejść w interakcję z twoją albo odczytać dane, których nie powinna. Izolacja origin to dodatkowa warstwa ochrony, która zmniejsza tego typu ryzyko.

Jak to naprawić

Dodaj nagłówki Cross-Origin-Opener-Policy i Cross-Origin-Resource-Policy w konfiguracji serwera lub CDN. Zacznij od ostrożnych wartości i sprawdź, czy twoje zasoby i integracje wciąż działają, zanim je zaostrzysz.

Jak działa ta kontrola

Scanaris sprawdza w głównej odpowiedzi Twojej strony obecność dwóch nagłówków: Cross-Origin-Opener-Policy (COOP) i Cross-Origin-Resource-Policy (CORP). Jeśli brakuje jednego lub obu, otwiera jedno ustalenie o niskiej wadze wskazujące, których. Nie ocenia wartości, tylko obecność. To dwa nagłówki izolacji źródła najłatwiejsze do wdrożenia; trzeci z rodziny, Cross-Origin-Embedder-Policy, nie jest wymagany, bo psuje każdy zasób zewnętrzny, który nie współpracuje, i rzadko się opłaca na zwykłej stronie.

Co chroni każdy z nich

COOP decyduje, czy Twoje okno dzieli „grupę kontekstów przeglądania" z tym, które je otworzyło, albo z tymi, które Ty otwierasz. Przy same-origin strona z innej domeny, która otwiera Twoją przez window.open, nie ma już do niej użytecznego odniesienia (i odwrotnie), co ucina ataki manipulacji między kartami i zamyka drogę, którą wykorzystuje się wycieki pamięci typu Spectre. CORP decyduje, kto może osadzać Twoje zasoby. Przy same-origin inna strona nie może załadować Twoich obrazów, skryptów ani fontów znacznikiem <img> lub <script>, nawet jeśli adresy są publiczne: przeglądarka blokuje odpowiedź, zanim dotrze do tamtej strony. Żaden z nich nie naprawia istniejącej luki; to obrona w głąb, i dlatego ich brak ma niską wagę.

Jak je dodać

Zalecane wartości dla strony, która nie dzieli zasobów z innymi domenami:

Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Resource-Policy: same-origin
  • Nuxt: w routeRules w nuxt.config, w regule '/**', obok pozostałych nagłówków.
  • Next.js: w funkcji headers() w next.config.js.
  • Vercel: w vercel.json, sekcja headers. Netlify: w _headers, pod /*.
  • nginx: dwie linie add_header ... always; w bloku server. Apache: Header always set w VirtualHost.
  • Express: helmet() dodaje je domyślnie w nowszych wersjach; sprawdź, którą masz zainstalowaną.

Dwie rzeczy do sprawdzenia przed włączeniem

  • Logowanie przez wyskakujące okno. Jeśli używasz „Zaloguj przez Google" lub innego dostawcy w trybie popup, okno musi rozmawiać z tym, które je otworzyło. Przy same-origin przestaje działać; użyj same-origin-allow-popups, które zachowuje ochronę i dopuszcza ten przypadek.
  • Zasoby, które serwujesz innym domenom. Jeśli Twoje obrazy lub fonty są ładowane z innej Twojej strony (blog na innej domenie, widżet osadzany przez innych), same-origin zablokuje je tam. Użyj same-site, jeśli druga strona to subdomena, albo cross-origin na konkretnych ścieżkach tych zasobów.

Sprawdź, czy naprawione

curl -sI https://twojadomena.pl | grep -iE "^cross-origin-(opener|resource)-policy:"

Muszą pojawić się oba wiersze. Potem otwórz stronę, przetestuj logowanie i każdą integrację z popupem i zajrzyj do konsoli przeglądarki: zasób zablokowany przez CORP pojawia się tam z wyraźnym komunikatem.

Często zadawane pytania

Czy to zastępuje CORS?

Nie, uzupełniają się i działają w przeciwnych kierunkach. CORS otwiera Twoje odpowiedzi dla konkretnych źródeł, gdy to potrzebne; CORP domyślnie zamyka je przed każdym, kto chce je osadzić. Możesz mieć CORP same-origin na całej stronie i otwarty CORS na jednej ścieżce API.

Czy potrzebuję też Cross-Origin-Embedder-Policy?

Tylko jeśli chcesz SharedArrayBuffer albo timerów wysokiej rozdzielczości (montaż wideo, emulatory, niektóre aplikacje WebAssembly). COEP wymaga, żeby wszystko, co osadzasz, miało CORP lub CORS, a większość skryptów zewnętrznych tego nie ma. Dla zwykłej strony COOP i CORP wystarczą.

O ile poprawia ocenę?

Niewiele w punktach, bo to ustalenie o niskiej wadze; ale to jedna z niewielu poprawek bez skutków ubocznych, jeśli zrobisz dwa powyższe sprawdzenia. Nagłówki, które naprawdę ważą, są w nagłówki bezpieczeństwa i wyjaśnione w nagłówki HTTP dla ludzi.

Sprawdź to na swojej stronie

Przeskanuj swoją stronę za darmo i zobacz, czy ten i 44 inne testy przechodzą, z promptem naprawczym dla każdego problemu.

Przeskanuj moją stronę za darmo

Z bloga

Powiązane testy