Defaults.Exposed › Ispravci › Zaglavlja za cross-origin izolaciju (COOP / CORP / COEP)
Kako popraviti Zaglavlja za cross-origin izolaciju (COOP / CORP / COEP)
Tri neobavezne preglednikove upute koje kontroliraju kako drugim web stranicama smiju međusobno djelovati s vašom — otvarajući je u skočnim prozorima, ugrađujući njene slike i skripte ili povlačeći njene resurse na vlastite stranice. To je moderno ojačanje, a ne osnovna obaveza, i u našem bodovanju su informativne: njihov nedostatak ne snizuje vašu ocjenu. No dvije sigurne zatvaraju tihu phishing i krađu-propusnosti prazninu, i pažljiv sigurnosni tim kupca primijetit će kad su prisutne.
Zaključak za vaše poslovanje: Dvije od ove tri zaglavlja zaustavljaju sofisticirane popup-phishing napade i sprječavaju druge stranice od hotlinkanja vaših slika i skripti (što vas košta propusnosti i može curit podatke). Besplatne su, programeru traju oko 15 minuta i ništa neće pokvariti. Treća je napredna i može pokvariti analitiku, fontove i ugradnje — većina poduzeća trebala bi je ostaviti isključenu. Nijedna ne utječe na vašu ocjenu, pa ih tretirajte kao poliranje, ne paniku: napravite dvije sigurne, preskočite rizičnu osim ako ju posebno trebate.
Što vas ovo može koštati
- Prevarant otvori vašu pravu stranicu u skočnom prozoru i zadrži daljinsku kontrolu nad njom — tiho preusmjeravajući vašeg klijenta na lažnu prijavu u trenutku kad se osvrnre. Sigurno zaglavlje (COOP) potpuno prekida tu kontrolnu vezu.
- Druge web stranice ugrađuju vaše fotografije proizvoda, logotipe i skripte izravno s vašeg servera (hotlinking) — vi plaćate propusnost svaki put kad njihovi posjetitelja učite stranicu, a vaša imovina pojavljuje se na stranicama koje nikad ne biste odobrili.
- Sigurnosni tim potencijalnog partnera provjeri zaglavlja prije potpisa i vidi da ste dodali moderno cross-origin ojačanje — mali signal, ali stavlja vas u stupac 'oni to ozbiljno shvaćaju' umjesto 'minimalni standard'.
- Programer, pokušavajući biti temeljit, uključi napredno izolacijsko zaglavlje (COEP) bez testiranja — i pokori vaš Google Analytics, web fontove i ugrađeni widget za rezervacije preko noći. Znanje koje zaglavlje je sigurno a koje je rizično sprječava samoinicirani ispad.
- Revizorska kontrolna lista spominje cross-origin izolaciju; radije biste pokazali 'prisutno i ispravno' za dvije sigurne nego objašnjavali zašto nema ničega.
Zašto je to važno. To su preglednikova zaglavlja za ojačanje usmjerena na budućnost. U našoj metodologiji sve tri su informativne — registrirane s nula bodova i nikad ne pomičnjuju vašu ocjenu — jer su napredne kontrole bez kojih stranica može legitimno raditi, a jedna od njih može nanijeti štetu ako je pogrešno primijenjena. Izvještavamo o njima da vidite gdje stojite. Dvije sigurne (COOP i CORP) su zapravo vrijedne dodavanja: besplatne, brze i zatvaraju stvarne popup-phishing i krađu-resursa praznine bez kvarenja ičega.
Što je ovo, jednostavnim riječima
Kad netko posjeti vašu web stranicu, njihov preglednik ne učitava samo vaše stranice u izolaciji — odlučuje i kako drugima web stranicama smiju međusobno djelovati s vašom. Može li druga stranica otvoriti vašu stranicu u skočnom prozoru i zadržati nad njom kontrolu? Može li druga stranica doseći i ugraditi vaše slike i skripte na vlastite stranice? Može li vaša vlastita stranica sigurno koristiti određene snažne, zaključane preglednikove značajke?
Ova tri zaglavlja su kratke, nevidljive upute koje vaša web stranica šalje pregleniku svakog posjetitelja da odgovori točno na ta pitanja. Poznate su po inicijalima:
- COOP — Cross-Origin-Opener-Policy. Kontrolira mogu li druge stranice koje otvore vašu u skočnom prozoru zadržati daljinsku kontrolu nad njom.
- CORP — Cross-Origin-Resource-Policy. Kontrolira smiju li druge stranice ugraditi vaše slike, skripte i ostale datoteke na vlastite stranice.
- COEP — Cross-Origin-Embedder-Policy. Napredna kontrola koja, kombinirana s COOP-om, “izolira” vašu stranicu da može sigurno koristiti određene snažne preglednikove značajke.
Dvije od njih (COOP i CORP) su sigurne za dodati i zapravo korisne. Treća (COEP) je napredna i može pokvariti stvari ako se bezbrižno uključi.
Najvažnija stvar za znati unaprijed: u našem bodovanju, sve tri su informativne. Ne utječu na vašu ocjenu. Nedostajuća ne košta vas ništa. Izvještavamo o njima da vidite gdje stojite i sredite lake pobjede — ne da panično gledate na broj.
Što vas ovo može koštati
To su nišni rizici, ne naslovni — ali su stvarni, a popravci su besplatni.
-
Popup phishing koji zadržava daljinsku kontrolu vaše prave stranice. Bez COOP-a, prevarantova stranica može otvoriti vašu pravu web stranicu u skočnom prozoru i zadržati živu referencu na nju. Dok je pažnja vašeg klijenta na prevarantovoj stranici, napadač može preusmjeriti taj skočni prozor — vašu pravu domenu u adresnoj traci — na lažnu prijavu ili platni ekran u točnom trenutku kad se klijent osvrnre natrag. COOP postavljen na “same-origin” prekida tu kontrolnu vezu pa se skočnim prozorom ne može upravljati.
-
Druge stranice kradu vašu propusnost (i stavljaju vaše resurse gdje ih ne želite). Bez CORP-a, bilo koja web stranica na internetu može ugraditi vaše fotografije proizvoda, logotipe, skripte i ostale datoteke izravno s vašeg servera — “hotlinking”. Svaki posjetitelja njihove stranice preuzima datoteku od vas, na vašem računu za propusnost, a vaša imovina pojavljuje se u kontekstu koji nikad niste odobrili. CORP postavljen na “same-origin” sprječava vanjske stranice od ugrađivanja vaših resursa.
-
Tihi put curenja podataka za napredne preglednikove napade. Isto cross-origin ugrađivanje koje omogućuje hotlinking je i jedan od putova koje sofisticirani, bočno-kanalni preglednikovi napadi (Spectre obitelj) koriste za čitanje podataka koje ne bi trebali. COOP i CORP zajedno zatvaraju taj put na razini preglednika. Za većinu malih poduzeća ovo je pojasnice i naramenice, ali je besplatno.
-
Samoinicirani ispad zbog pogrešnog zaglavlja. Napredna, COEP, zahtijeva da svaki resurs koji vaša stranica učitava eksplicitno pristane. Uključite je bez testiranja i vaša analitika, web fontovi, ugrađene karte, widgeti za rezervacije i skripte trećih strana mogu sve prestati učitavati — jer nitko od njih nije bio zamoljan da pristane. To je jedini način na koji ova zaglavlja mogu zaista nanijeti štetu, i potpuno je izbjegljiv: ne aktivirajte COEP bez testiranja.
-
Propušteni laki signal pažljivim kupcima. Kad sigurnosni tim potencijalnog partnera skenira vaša zaglavlja prije potpisa, pronalazak modernog cross-origin ojačavanja na mjestu je mali ali stvarni signal “ove osobe ozbiljno shvaćaju sigurnost”. Neće sam po sebi zaključiti posao — ali je besplatno biti na pravoj strani te knjige.
Što je svako od njih zapravo
COOP — Cross-Origin-Opener-Policy (sigurno, preporučeno)
Kad druga web stranica otvori vašu korištenjem skočnog prozora ili window.open, dva prozora normalno mogu zadržati referencu jedan na drugi. Ta veza može biti zloupotrijebljena: otvarač može manipulirati ili preusmjeriti vaš prozor, čitati fragmente vaše URL adrese i inscenirati uvjerljivi phishing koristeći vašu pravu domenu. COOP: same-origin prekida tu vezu — vaš prozor postaje izoliran od svega što ga je otvorilo iz drugih izvora. Normalno pregledavanje, vaši vlastiti interni linkovi i uobičajena navigacija su potpuno neuzrokovani.
Kako izgleda ‘dobro’: Cross-Origin-Opener-Policy: same-origin.
CORP — Cross-Origin-Resource-Policy (sigurno, preporučeno)
Po zadanom, vaše slike, skripte i ostale datoteke mogu biti ugrađene od bilo koje stranice bilo gdje. CORP: same-origin govori preglednicima da odbiju cross-origin ugrađivanje vaših resursa — pa druge stranice ne mogu hotlinkat vaše resurse ili ih povući na vlastite stranice. Vaša vlastita stranica i dalje učitava vlastite resurse točno kao i prije; blokirane su samo vanjske stranice.
Kako izgleda ‘dobro’: Cross-Origin-Resource-Policy: same-origin. (Ako namjerno objavljujete imovinu da je drugi ugrade — javni logotip, otvoreni API — vaš programer može ovo opustiti za te specifične odgovore.)
COEP — Cross-Origin-Embedder-Policy (napredno, obično ostavite isključeno)
COEP dovršava “cross-origin izolaciju”: kombiniran s COOP-om, zahtijeva da svaki resurs koji vaša stranica učitava eksplicitno pristane (putem CORS ili CORP). Ispravno napravljeno, ovo otključava određene snažne preglednikove značajke (poput SharedArrayBuffer) i dodaje još jedan sloj protiv Spectre-klase napada. Ali jer zahtijeva pristanak od svega što učitavate, lako kvari alate trećih strana — analitiku, fontove, ugrađene widgete — koji nisu bili napravljeni da pristanu. Većina web stranica ne treba značajke koje otključava i ne bi trebala nositi rizik kvara.
Kako izgleda ‘dobro’: za rijetku stranicu kojoj je potrebna, Cross-Origin-Embedder-Policy: credentialless — sigurnija vrijednost, manje vjerojatna da pokvari vanjske resurse od require-corp. Za sve ostale, odsutna je u redu, i naše izvješće vas neće kazniti za to.
Kako to popraviti (besplatno, ~15 minuta)
Proslijedite ovo vašoj IT osobi ili web programeru — popravak je besplatan. Dodavanje COOP i CORP je par jednolinirajskih postavki na vašem serveru ili CDN-u; nema licenci i nema tekućih troškova. Jedina uputa za vlasnika je: napravite dvije sigurne i ne aktivirajte COEP bez testiranja.
To su zaglavlja odgovora, postavljena gdje god vaša stranica proizvodi odgovore — najlakše na vašem CDN-u (npr. Cloudflare) ako ga imate, inače u konfiguraciji web servera.
Dva sigurna zaglavlja (preporučeno za sve)
Cloudflare — Rules → Transform Rules → Modify Response Headers → Postavi:
Cross-Origin-Opener-Policy=same-originCross-Origin-Resource-Policy=same-origin
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"
Ove su sigurne za dodati i neće pokvariti normalnu funkcionalnost. Nakon primjene, ponovo učitajte nekoliko stranica i potvrdite da se stranica ponaša točno kao i prije (trebala bi).
Napredno zaglavlje (samo ako vam je posebno potrebno)
Ne uključujte ovo bez prethodnog testiranja u stagingu. COEP može pokvariti analitiku, fontove i ugrađene widgete.
Cloudflare: Transform Rules → Postavi Cross-Origin-Embedder-Policy = credentialless.
Nginx:
add_header Cross-Origin-Embedder-Policy "credentialless" always;
Koristite credentialless umjesto require-corp — manje je vjerojatno da će pokvariti vanjske resurse. Temeljito testirajte u stagingu; pazite na skripte trećih strana, fontove ili ugradnje koje prestanu učitavati. Ako nešto pukne i zapravo ne trebate značajke koje COEP otključava, jednostavno uklonite zaglavlje — nema kazne za njegovo nepostojanje.
Napomene o platformama
- Google Workspace / Microsoft 365: ovi pokreću vašu e-poštu, ne vašu web stranicu, pa ovdje nema ničega za postaviti. Ova zaglavlja pripadaju onom što hostira vašu web stranicu (vaš CDN, host ili server).
- Uobičajeni upravljani hostovi / graditelji stranica (Wix, Squarespace, Shopify itd.): prilagođena zaglavlja odgovora možda se ne mogu konfigurirati na nižim planovima. Ako ih ne možete dodati, to je u redu — ove su informativne i ne utječu na vašu ocjenu. Stavljanje stranice iza CDN-a poput Cloudflarea je uobičajeni način za stjecanje kontrole nad zaglavljima.
- WordPress na vlastitom hostingu: postavite ih u konfiguraciji web servera (Nginx/Apache gore) ili putem CDN-a, ne u dodatku gdje je moguće — razina servera/CDN-a je čišća i primjenjuje se na svaki odgovor.
Česte greške
- Aktiviranje COEP-a ‘da bude temeljito’ i rušenje stranice. Ovo je velika. COEP zahtijeva pristanak od svega što učitavate; uključite ga bez testiranja i vaša analitika, fontovi i ugradnje mogu nestati. Ako ne trebate preglednikove značajke koje otključava, ne postavljajte ga.
- Tretiranje ovih kao hitnih jer ih je skener spomenuo. Informativne su. Bodovana zaglavlja (HTTPS, HSTS, CSP, clickjacking, MIME-sniffing) dolaze prva — popravite one prije trošenja energije ovdje.
- Postavljanje CORP-a prestrogo kad zapravo objavljujete ugrađivu imovinu. Ako namjerno servirate logotip, bedž ili API za korištenje od strane drugih stranica, paušalni
same-originCORP će ih blokirati. Opustite ga na samo onim odgovorima umjesto napuštanja zaglavlja svugdje. - Dodavanje zaglavlja na razini stranice/aplikacije i propuštanje nekih odgovora. Postavite ih na razini servera ili CDN-a da se primjenjuju na svaki odgovor (slike, skripte, API endpointe), ne samo na HTML stranice.
- Miješanje ovih sa SSL lokotom. HTTPS šifrira vezu; ove kontroliraju cross-site interakciju. Nepovezani su, i želite oboje.
Napomena o ocjeni
Da budemo potpuno jasni: nijedna od ove tri provjere ne utječe na vašu ocjenu. Registrirane su u našoj metodologiji kao informativne, s nula bodova, i nedostajuća nikad ne košta vas ništa. Prikazujemo ih jer su dvije sigurne jeftina, stvarna poboljšanja i jer je korisno vidjeti cjelokupnu sliku — ne jer postoji broj koji treba braniti. Ako ništa ne napravite ovdje, vaša ocjena je točno ista. Ako dodate COOP i CORP, zatvorili ste par stvarnih (ako i nišnih) praznina besplatno. To je pravi način razmišljanja o ovoj stranici: neobavezno poliranje, s jednom jasno označenom zamkom za izbjegavanje.
Česta pitanja
Ove ne utječu na moju ocjenu — trebam li se uopće potruditi?
Za dvije od njih, da; za jednu, vjerojatno ne. COOP i CORP su besplatne, traju minutama i neće pokvariti vašu stranicu — zatvaraju stvarne (ako i nišne) napadne putove, pa ih vrijedi napraviti kao jeftinu higijenu. COEP je napredna i može pokvariti alate trećih strana, pa bi je većina poduzeća trebala ostaviti isključenu osim ako posebno trebaju preglednikove značajke koje otključava. Nijedna od triju ne mijenja vašu ocjenu ni na koji način, pa nema hitnosti — tretirajte dvije sigurne kao urednost sljedeći put kad vaš programer bude na stranici.
Nisam tehničar — moram li ovo poduzeti?
Ne osobno i ne hitno. Budući su informativne, ništa loše se ne dogodi vašoj ocjeni ako ih preskočite. Ako biste željeli dodati dvije sigurne, proslijedite odjeljak 'Kako to popraviti' onome tko upravlja vašom web stranicom ili CDN-om — to su par jednolinirajskih postavki i popravak je besplatan. Jedinu stvar koja se isplati posebno istaknuti je COEP: recite im da je ne uključuju bez testiranja, jer može pokvariti analitiku i ugrađene widgete.
Koja je razlika između ovih i zaglavlja koja UTJEČU na moju ocjenu?
Bodovana zaglavlja web sigurnosti — HTTPS preusmjeravanje, HSTS, Content-Security-Policy, zaštita od clickjackinga (X-Frame-Options) i zaštita od MIME-sniffinga — brane se od čestih, široko iskorištavanih napada, pa njihov nedostatak košta bodova. Tri na ovoj stranici (COOP, CORP, COEP) su novije, specijaliziranije preglednikove izolacijske kontrole. Dobra su praksa ali još nisu osnovna očekivanja, pa ih izvještavamo bez bodovanja. Napravite bodovane prve; ove su poliranje na vrhu.
Hoće li dodavanje COOP ili CORP pokvariti moju web stranicu ili integracije partnera?
Preporučene postavke (obje 'same-origin') dizajnirane su da budu sigurne. COOP samo prekida vezu s prozorima koje vaša stranica otvori u skočnim prozorima — normalno pregledavanje, vaše vlastite stranice i uobičajeni linkovi su neuzrokovani. CORP samo sprječava *druge* stranice od ugrađivanja vaših slika i skripti; vaša vlastita stranica učitava vlastite resurse točno kao i prije. Ako zapravo servirate imovinu (poput javnog logotipa ili API-ja) koji druge stranice trebaju ugraditi, vaš programer može koristiti dozvoljavajuću postavku za te specifične odgovore. Ona koja zaista riskirajte kvar je COEP — tu ostavite isključenom osim ako nije testirana.
Što me hotlinking zapravo košta?
Kad druga stranica ugradi vašu sliku ili skriptu izravno s vašeg servera umjesto hostiranja vlastite kopije, svaki posjetitelja njihove stranice je preuzima od vas — na vašem računu za propusnost, a vaša imovina se pojavljuje u kontekstu koji niste odobrili. Za malo poduzeće rijetko je katastrofalno, ali je besplatan novac koji odlazi, a CORP ('same-origin') to zaustavlja na razini preglednika. Također zatvara suptilni put curenja podataka na koji se napredni (Spectre-klase) preglednikovi napadi oslanjaju.
Kako izgleda 'dobro' za svako od ovih?
COOP: Cross-Origin-Opener-Policy zaglavlje postavljeno na 'same-origin'. CORP: Cross-Origin-Resource-Policy zaglavlje postavljeno na 'same-origin'. COEP: Cross-Origin-Embedder-Policy zaglavlje — a ako ga uopće postavljate, 'credentialless' je sigurnija vrijednost od 'require-corp'. Naše izvješće jednostavno bilježi je li svako prisutno i na što je postavljeno; nikad vas ne kažnjava za nedostajuće. Ciljajte da COOP i CORP budu prisutni; ostavite COEP odsutnim osim ako ga niste testirali.