Defaults.Exposed

Defaults.ExposedNaprawy › Nagłówki izolacji cross-origin (COOP / CORP / COEP)

Jak naprawić Nagłówki izolacji cross-origin (COOP / CORP / COEP)

Trzy opcjonalne polecenia przeglądarki, które kontrolują, jak inne witryny mogą wchodzić w interakcję z Twoją — otwierać ją w wyskakujących oknach, osadzać jej obrazy i skrypty albo wciągać jej zasoby do własnych stron. To nowoczesne wzmocnienie, nie podstawowy obowiązek, a w naszej punktacji są informacyjne: ich brak nie obniża oceny. Ale dwa bezpieczne z nich zamykają cichą lukę phishingu i kradzieży przepustowości, a zespół IT uważnego kupującego zauważy, gdy są obecne.

W skrócie dla Twojej firmy: Dwa z tych trzech nagłówków zamykają wyrafinowany phishing przez wyskakujące okna i powstrzymują inne witryny od podlinkowywania Twoich obrazów i skryptów (co kosztuje Cię przepustowość i może powodować wyciek danych). Są darmowe, zajmują programiście około 15 minut i niczego nie psują. Trzeci jest zaawansowany i może zepsuć analitykę, czcionki i osadzenia — większość firm powinna pozostawić go wyłączonym. Żaden nie wpływa na ocenę, więc traktuj je jako szlif, nie panikę: zrób dwa bezpieczne, pomiń ryzykowny, chyba że konkretnie go potrzebujesz.

Ile może Cię to kosztować

Dlaczego to ma znaczenie. To przyszłościowe nagłówki wzmacniające przeglądarkę. W naszej metodologii wszystkie trzy są informacyjne — zarejestrowane z zerową liczbą punktów i nigdy nie zmieniają oceny — ponieważ to zaawansowane mechanizmy, bez których witryna może legalnie działać, a jeden z nich może zaszkodzić przy złym zastosowaniu. Raportujemy je, byś widział, gdzie stoisz. Dwa bezpieczne (COOP i CORP) naprawdę warto dodać: darmowe, szybkie i zamykają realne luki phishingu przez wyskakujące okna oraz kradzieży zasobów, niczego nie psując.

Czym one są, po ludzku

Gdy ktoś odwiedza Twoją witrynę, jego przeglądarka nie ładuje Twoich stron w izolacji — decyduje też, jak inne witryny mogą wchodzić w interakcję z Twoją. Czy inna witryna może otworzyć Twoją w wyskakującym oknie i zachować nad nią kontrolę? Czy inna witryna może sięgnąć i osadzić Twoje obrazy i skrypty na własnych stronach? Czy Twoja własna witryna może bezpiecznie używać pewnych potężnych, zablokowanych funkcji przeglądarki?

Te trzy nagłówki to krótkie, niewidoczne polecenia, które Twoja witryna wysyła przeglądarce każdego odwiedzającego, by odpowiedzieć dokładnie na te pytania. Znane są ze swoich skrótów:

Dwa z nich (COOP i CORP) są bezpieczne do dodania i naprawdę użyteczne. Trzeci (COEP) jest zaawansowany i może coś zepsuć, jeśli włączyć go nieostrożnie.

Najważniejsze, co trzeba wiedzieć na wstępie: w naszej punktacji wszystkie trzy są informacyjne. Nie wpływają na Twoją ocenę. Brakujący nic Cię nie kosztuje. Raportujemy je, byś widział, gdzie stoisz, i zgarnął łatwe wygrane — nie po to, byś panikował o liczbę.

Co to może Cię kosztować

To ryzyka niszowe, nie nagłówkowe — ale realne, a poprawki są darmowe.

Czym właściwie jest każdy z nich

COOP — Cross-Origin-Opener-Policy (bezpieczny, zalecany)

Gdy inna witryna otwiera Twoją za pomocą wyskakującego okna lub window.open, oba okna mogą normalnie zachować wzajemne odwołanie. To łącze można nadużyć: otwierający może manipulować lub przekierować Twoje okno, odczytać fragmenty jego adresu URL i zainscenizować przekonujący phishing przy użyciu Twojej prawdziwej domeny. COOP: same-origin zrywa tę relację — Twoje okno staje się odizolowane od wszystkiego, co otworzyło je z innego origin. Normalne przeglądanie, Twoje wewnętrzne odnośniki i zwykła nawigacja są zupełnie niedotknięte.

Jak wygląda dobry stan: Cross-Origin-Opener-Policy: same-origin.

CORP — Cross-Origin-Resource-Policy (bezpieczny, zalecany)

Domyślnie Twoje obrazy, skrypty i inne pliki mogą być osadzane przez dowolną witrynę gdziekolwiek. CORP: same-origin każe przeglądarkom odmawiać osadzania Twoich zasobów z innego origin — by inne witryny nie mogły podlinkowywać Twoich zasobów ani wciągać ich do swoich stron. Twoja własna witryna nadal ładuje swoje zasoby dokładnie jak wcześniej; blokowane są tylko witryny zewnętrzne.

Jak wygląda dobry stan: Cross-Origin-Resource-Policy: same-origin. (Jeśli celowo publikujesz zasoby do osadzania przez innych — publiczne logo, otwarte API — programista może rozluźnić to na tych konkretnych odpowiedziach.)

COEP — Cross-Origin-Embedder-Policy (zaawansowany, zwykle pozostaw wyłączony)

COEP dopełnia „izolację cross-origin”: w połączeniu z COOP wymaga, by każdy zasób, który Twoja strona ładuje, jawnie się zgodził (przez CORS lub CORP). Zrobiony właściwie, odblokowuje pewne potężne funkcje przeglądarki (jak SharedArrayBuffer) i dodaje kolejną warstwę przeciw atakom klasy Spectre. Ale ponieważ wymaga zgody od wszystkiego, co ładujesz, łatwo psuje narzędzia zewnętrzne — analitykę, czcionki, osadzone widżety — których nie zbudowano z myślą o wyrażaniu zgody. Większość witryn nie potrzebuje funkcji, które odblokowuje, i nie powinna brać na siebie ryzyka zepsucia.

Jak wygląda dobry stan: dla rzadkiej witryny, która go potrzebuje, Cross-Origin-Embedder-Policy: credentialless — bezpieczniejsza wartość, mniej prawdopodobna do zepsucia zasobów zewnętrznych niż require-corp. Dla wszystkich pozostałych nieobecność jest w porządku, a nasz raport Cię za nią nie ukarze.

Jak to naprawić (darmowo, ~15 minut)

Przekaż to swojemu informatykowi lub programiście WWW — poprawka jest darmowa. Dodanie COOP i CORP to kilka jednolinijkowych ustawień na serwerze lub CDN; nie ma licencji ani kosztu bieżącego. Jedyne polecenie dla właściciela to: zrób dwa bezpieczne i nie włączaj COEP bez testów.

To nagłówki odpowiedzi, ustawiane tam, gdzie powstają odpowiedzi Twojej witryny — najłatwiej w Twoim CDN (np. Cloudflare), jeśli go masz, inaczej w konfiguracji serwera WWW.

Dwa bezpieczne nagłówki (zalecane dla każdego)

Cloudflare — Rules → Transform Rules → Modify Response Headers → Set:

Nginx:

add_header Cross-Origin-Opener-Policy   "same-origin" always;
add_header Cross-Origin-Resource-Policy "same-origin" always;

Apache:

Header always set Cross-Origin-Opener-Policy   "same-origin"
Header always set Cross-Origin-Resource-Policy "same-origin"

To bezpieczne dodatki i nie zepsują normalnego działania. Po wdrożeniu przeładuj kilka stron i potwierdź, że witryna zachowuje się dokładnie jak wcześniej (powinna).

Zaawansowany nagłówek (tylko jeśli konkretnie go potrzebujesz)

Nie włączaj tego bez wcześniejszych testów na środowisku testowym. COEP może zepsuć analitykę, czcionki i osadzone widżety.

Cloudflare: Transform Rules → Set Cross-Origin-Embedder-Policy = credentialless.

Nginx:

add_header Cross-Origin-Embedder-Policy "credentialless" always;

Użyj credentialless zamiast require-corp — mniej prawdopodobne, że zepsuje zasoby zewnętrzne. Testuj dokładnie na środowisku testowym; obserwuj, czy jakiś skrypt, czcionka lub osadzenie strony trzeciej przestaje się ładować. Jeśli coś się zepsuje, a tak naprawdę nie potrzebujesz funkcji, które COEP odblokowuje, po prostu usuń nagłówek — nie ma kary za jego brak.

Uwagi do platform

Częste błędy

Uwaga o ocenie

Zupełnie jasno: żaden z tych trzech testów nie wpływa na Twoją ocenę. Są zarejestrowane w naszej metodologii jako informacyjne, z zerową liczbą punktów, a brakujący nigdy nic Cię nie kosztuje. Wynosimy je na wierzch, bo dwa bezpieczne to tanie, prawdziwe ulepszenia i bo widzenie pełnego obrazu jest użyteczne — nie dlatego, że jest liczba do obrony. Jeśli nic tu nie zrobisz, Twoja ocena jest dokładnie taka sama. Jeśli dodasz COOP i CORP, zamknąłeś za darmo kilka realnych (choć niszowych) luk. To właściwy sposób myślenia o tej stronie: opcjonalny szlif, z jedną wyraźnie oznaczoną pułapką do uniknięcia.

Najczęstsze pytania

Te nie wpływają na moją ocenę — czy w ogóle warto się nimi zajmować?

Dwoma tak; jednym raczej nie. COOP i CORP są darmowe, zajmują minuty i nie zepsują Twojej witryny — zamykają realne (choć niszowe) ścieżki ataku, więc warto je zrobić jako tanią higienę. COEP jest zaawansowany i może zepsuć narzędzia zewnętrzne, więc większość firm powinna pozostawić go wyłączonym, chyba że konkretnie potrzebuje funkcji przeglądarki, które odblokowuje. Żaden z trzech tak czy inaczej nie zmienia Twojego wyniku, więc nie ma pośpiechu — potraktuj dwa bezpieczne jako porządki przy następnej wizycie programisty w witrynie.

Nie znam się na technice — czy to coś, co muszę zrobić?

Nie osobiście i nie pilnie. Ponieważ są informacyjne, nic złego nie stanie się z Twoją oceną, jeśli je pominiesz. Jeśli chcesz dodać dwa bezpieczne, przekaż sekcję Jak to naprawić osobie zarządzającej Twoją witryną lub CDN — to kilka jednolinijkowych ustawień, a poprawka jest darmowa. Jedyne, co warto wprost zaznaczyć, to COEP: powiedz im, by nie włączali go bez testów, bo może zepsuć analitykę i osadzone widżety.

Czym te się różnią od nagłówków, które WPŁYWAJĄ na ocenę?

Punktowane nagłówki bezpieczeństwa web — przekierowanie HTTPS, HSTS, Content-Security-Policy, ochrona przed clickjackingiem (X-Frame-Options) i ochrona przed odgadywaniem typu MIME — bronią przed częstymi, szeroko wykorzystywanymi atakami, więc ich brak kosztuje punkty. Trzy z tej strony (COOP, CORP, COEP) to nowsze, bardziej wyspecjalizowane mechanizmy izolacji przeglądarki. To dobra praktyka, ale jeszcze nie bazowe oczekiwanie, więc raportujemy je bez punktowania. Najpierw zrób punktowane; te to szlif na wierzchu.

Czy dodanie COOP lub CORP zepsuje moją witrynę albo integracje partnerów?

Zalecane ustawienia (oba same-origin) zaprojektowano jako bezpieczne. COOP przecina jedynie łącze do okien, które Twoja witryna otwiera w wyskakujących oknach — normalne przeglądanie, Twoje własne strony i zwykłe odnośniki nie są dotknięte. CORP powstrzymuje tylko *inne* witryny od osadzania Twoich obrazów i skryptów; Twoja własna witryna ładuje swoje zasoby dokładnie jak wcześniej. Jeśli faktycznie serwujesz zasoby (jak publiczne logo czy API), które inne witryny mają osadzać, programista może użyć bardziej permisywnego ustawienia na tych konkretnych odpowiedziach. Tym, który naprawdę grozi zepsuciem, jest COEP — pozostaw go wyłączonym, chyba że przetestowany.

Ile naprawdę kosztuje mnie „hotlinking”?

Gdy inna witryna osadza Twój obraz lub skrypt prosto z Twojego serwera, zamiast hostować własną kopię, każdy odwiedzający jej stronę pobiera go od Ciebie — na Twój rachunek za przepustowość i pokazując Twój zasób w kontekście, którego nie zaakceptowałeś. Dla małej firmy rzadko jest to katastrofa, ale to darmowe pieniądze wyciekające za drzwi, a CORP (same-origin) powstrzymuje to na poziomie przeglądarki. Zamyka też subtelną ścieżkę wycieku danych, na której opierają się zaawansowane ataki przeglądarki klasy Spectre.

Jak wygląda dobry stan dla każdego z nich?

COOP: nagłówek Cross-Origin-Opener-Policy ustawiony na same-origin. CORP: nagłówek Cross-Origin-Resource-Policy ustawiony na same-origin. COEP: nagłówek Cross-Origin-Embedder-Policy — a jeśli już go ustawiasz, credentialless to bezpieczniejsza wartość niż require-corp. Nasz raport po prostu odnotowuje, czy każdy jest obecny i na co ustawiony; nigdy nie karze Cię za brakujący. Celuj w obecne COOP i CORP; pozostaw COEP nieobecny, chyba że go przetestowałeś.