Defaults.Exposed › Rešenja › Cross-origin isolation headeri (COOP / CORP / COEP)
Kako popraviti Cross-origin isolation headeri (COOP / CORP / COEP)
Tri opcione browser instrukcije koje kontrolišu kako je drugim sajtovima dozvoljeno da interaguju s vašim — otvarajući ga u popupima, ugrađujući njegove slike i skripte, ili povlačeći njegove resurse u vlastite stranice. To je moderno ojačavanje, ne osnovna obaveza, i u našem bodovanju su informativni: njihovo odsustvo ne snižava vašu ocjenu. Ali ona dva bezbedna zatvaraju tihu phishing i bandwidth-krađe prazninu, a pažljiv IT tim kupca će primijetiti kad su prisutni.
Suština za vaše poslovanje: Dva od ova tri headera zatvaraju sofisticirani popup-phishing i sprečavaju druge sajtove od hotlinkovanja vaših slika i skripti (što vas košta bandwidth i može curiti podatke). Besplatni su, developeru traju oko 15 minuta i neće ništa pokvariti. Treći je napredan i može pokvariti analitiku, fontove i embedove — većina preduzeća ga treba ostaviti isključenim. Nijedan od njih ne utiče na vašu ocjenu, pa ih tretirajte kao polish, a ne paniku: uradite ona dva bezbedna, preskočite rizični osim ako ga konkretno ne trebate.
Šta vam ovo može koštati
- Prevarant otvara vaš pravi sajt u popup prozoru i zadržava daljinsku kontrolu nad njim — tiho preusmjeravajući vašeg kupca na lažnu prijavu čim skrene pogled. Bezbedni header (COOP) potpuno prekida tu kontrolnu vezu.
- Drugi sajtovi ugrađuju vaše fotografije, logoe i skripte direktno s vašeg servera (hotlinking) — vi plaćate bandwidth svaki put kad posjetioci njihovog sajta učitaju stranicu, i vaši asseti se pojavljuju na sajtovima koje nikad niste odobrili.
- IT tim potencijalnog kupca vrši header skeniranje pre potpisivanja i vidi da ste dodali moderno cross-origin ojačavanje — mali signal, ali stavlja vas u kolonu 'ovi to ozbiljno shvataju' umjesto 'minimum'.
- Developer, pokušavajući biti temeljit, uključuje napredni isolation header (COEP) bez testiranja — i kvari vaš Google Analytics, web fontove i ugrađeni booking widget prekonoć. Znanje koji header je bezbedan i koji je rizičan izbjegava samoinicirani outage.
- Revizorova lista pominje cross-origin isolation; radije biste pokazali 'prisutno i ispravno' na ona dva bezbedna nego objašnjavali zašto ničeg nema.
Zašto je to važno. To su napredni browser-hardening headeri. U našoj metodologiji sva tri su informativna — registrovana sa nula bodova i nikad ne mijenjaju vašu ocjenu — jer su to napredne kontrole bez kojih sajt može legitimno raditi, i jedna od njih može napraviti štetu ako se nepravilno primijeni. Izvještavamo o njima da vidite gdje stojite. Ona dva bezbedna (COOP i CORP) su zaista vrijedna dodavanja: besplatni, brzi i zatvaraju prave popup-phishing i resource-krađe praznine bez kvarenja ičega.
Šta su ovi, jednostavnim rečima
Kad neko posjeti vaš sajt, njihov pretraživač ne učitava samo vaše stranice u izolaciji — takođe odlučuje kako drugi sajtovi smiju interagovati s vašim. Može li drugi sajt otvoriti vaš sajt u popup prozoru i zadržati ga? Može li drugi sajt posegnuti i ugrađivati vaše slike i skripte u vlastite stranice? Može li vaš vlastiti sajt bezbedno koristiti određene moćne, zaključane browser funkcije?
Ova tri headera su kratke, nevidljive instrukcije koje vaš sajt šalje pretraživaču svakog posjetioca da odgovorene tačno ta pitanja. Poznati su po inicijalima:
- COOP — Cross-Origin-Opener-Policy. Kontroliše da li drugi sajtovi koji otvaraju vaš sajt u popup prozoru mogu zadržati daljinsku kontrolu nad njim.
- CORP — Cross-Origin-Resource-Policy. Kontroliše da li drugi sajtovi smiju ugrađivati vaše slike, skripte i druge fajlove u vlastite stranice.
- COEP — Cross-Origin-Embedder-Policy. Napredna kontrola koja, kombinovana s COOP-om, “izolira” vašu stranicu tako da može bezbedno koristiti određene moćne browser funkcije.
Dva od njih (COOP i CORP) su bezbedni za dodavanje i zaista korisni. Treći (COEP) je napredan i može kvariti stvari ako se nepažljivo uključi.
Najvažnija stvar za znati unaprijed: u našem bodovanju, sva tri su informativna. Ne utiču na vašu ocjenu. Nedostajući ne košta vas ništa. Izvještavamo o njima da možete vidjeti gdje stojite i pospremiti laka poboljšanja — ne da panično gledate u broj.
Šta vam ovo može koštati
Ovo su nišni rizici, ne naslovni — ali su stvarni, i popravke su besplatne.
-
Popup phishing koji zadržava daljinsku kontrolu vašeg pravog sajta. Bez COOP-a, napadačeva stranica može otvoriti vaš pravi sajt u popup prozoru i držati živu referencu na njega. Dok je pažnja vašeg kupca na napadačevoj stranici, napadač može preusmeriti taj popup — vaš pravi domen u adresnoj traci — na lažni login ili ekran plaćanja tačno u trenutku kad se kupac vrati. COOP postavljen na “same-origin” prekida tu kontrolnu vezu tako da popup ne može biti upravljan.
-
Drugi sajtovi koji kradu vaš bandwidth (i stavljaju vaše assete tamo gdje ih ne želite). Bez CORP-a, bilo koji sajt na internetu može ugrađivati vaše fotografije, logoe, skripte i druge fajlove direktno s vašeg servera — “hotlinking”. Svaki posjetilac njihovog sajta preuzima fajl od vas, na vašem bandwidth računu, s vašim assetom koji se pojavljuje u kontekstu koji nikad niste odobrili. CORP postavljen na “same-origin” sprečava vanjske sajtove od ugrađivanja vaših resursa.
-
Tih data-leak path za napredne browser napade. Isto cross-origin ugrađivanje koje omogućava hotlinking je i jedan od pathova koje sofisticirani, side-channel browser napadi (Spectre familija) koriste za čitanje podataka koje ne bi trebali. COOP i CORP zajedno zatvaraju taj path na browser nivou. Za većinu malih preduzeća ovo je remen-i-tregeri, ali je besplatan remen-i-tregeri.
-
Samoinicirani outage od pogrešnog headera. Napredni, COEP, zahtijeva da svaki resurs koji vaša stranica učitava eksplicitno se prijavi. Uključite ga bez testiranja i vaša analitika, web fontovi, ugrađene mape, booking widgeti i skripte trećih strana mogu prestati učitavati — jer ni od jednog se nije tražilo da se prijavi. Ovo je jedini način na koji ovi headeri mogu zaista naštetiti, i potpuno je izbježivo: ne omogućavajte COEP bez testiranja.
-
Propušten lak signal pažljivim kupcima. Kad potencijalci IT tim skenira vaše headere pre potpisivanja, pronalaženje modernog cross-origin ojačavanja je mali ali stvarni “ovi ozbiljno shvataju bezbednost” signal. Sam po sebi neće dobiti posao — ali je besplatan za biti na pravoj strani te ljestvice.
Šta je svaki od njih zapravo
COOP — Cross-Origin-Opener-Policy (bezbedan, preporučen)
Kad drugi sajt otvori vaš koristeći popup ili window.open, dva prozora mogu normalno zadržavati referencu jedan na drugi. Ta veza može biti zloupotrebljena: otvarač može manipulisati ili preusmeriti vaš prozor, čitati fragmente URL-a i priređivati uvjerljiv phishing koristeći vaš pravi domen. COOP: same-origin razbija tu vezu — vaš prozor postaje izoliran od svega što ga je otvorilo s različitih origins. Normalno pregledanje, vaši vlastiti interni linkovi i obična navigacija su potpuno nepromijenjeni.
Kako izgleda “dobro”: Cross-Origin-Opener-Policy: same-origin.
CORP — Cross-Origin-Resource-Policy (bezbedan, preporučen)
Po defaultu, vaše slike, skripte i drugi fajlovi mogu biti ugrađeni od bilo kog sajta bilo gdje. CORP: same-origin govori pretraživačima da odbijaju cross-origin ugrađivanje vaših resursa — pa drugi sajtovi ne mogu hotlinkovati vaše assete ili ih povući na vlastite stranice. Vaš vlastiti sajt i dalje učitava vlastite resurse tačno kao i prije; samo spoljni sajtovi su blokirani.
Kako izgleda “dobro”: Cross-Origin-Resource-Policy: same-origin. (Ako namjerno objavljujete assete koje drugi saznaju ugrađivati — javni logo, otvoreni API — vaš developer može ovo olabaviti na tim specifičnim odgovorima.)
COEP — Cross-Origin-Embedder-Policy (napredan, obično ostavite isključenim)
COEP kompletira “cross-origin isolation”: kombinovan s COOP-om, zahtijeva da svaki resurs koji vaša stranica učitava eksplicitno se prijavi (putem CORS-a ili CORP-a). Urađeno ispravno, ovo otključava određene moćne browser funkcije (poput SharedArrayBuffer) i dodaje još jedan sloj protiv Spectre-class napada. Ali jer zahtijeva prijavu od svega što učitavate, lako kvari alate trećih strana — analitiku, fontove, ugrađene widgete — koji nisu bili izgrađeni da se prijave. Većina sajtova ne treba funkcije koje otključava i ne bi trebala nositi rizik kvarenja.
Kako izgleda “dobro”: za rijedak sajt koji ga treba, Cross-Origin-Embedder-Policy: credentialless — bezbednija vrijednost, manje vjerovatno da pokvari vanjske resurse nego require-corp. Za sve ostale, odsustvo je u redu, i naš izvještaj vas neće kazniti za to.
Kako popraviti (besplatno, ~15 minuta)
Prosledite ovo vašoj IT osobi ili web developeru — popravka je besplatna. Dodavanje COOP-a i CORP-a je par jednolinijskih postavki na vašem serveru ili CDN-u; nema licence i nema tekućih troškova. Jedina instrukcija za vlasnika je: uradite ona dva bezbedna i ne omogućavajte COEP bez testiranja.
To su response headeri, postavljeni gdje god se odgovori vašeg sajta produciraju — najlakše na vašem CDN-u (npr. Cloudflare) ako ga imate, inače u konfiguraciji vašeg web servera.
Dva bezbedna headera (preporučeno za svakoga)
Cloudflare — Rules → Transform Rules → Modify Response Headers → Set:
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"
Ovi su bezbedni za dodavanje i neće pokvariti normalnu funkcionalnost. Nakon deploy-a, reload-ujte nekoliko stranica i potvrdite da se sajt ponaša tačno kao i prije (trebalo bi).
Napredni header (samo ako ga konkretno trebate)
Ne uključujte ovo bez testiranja na stagingu. COEP može pokvariti analitiku, fontove i ugrađene widgete.
Cloudflare: Transform Rules → Set Cross-Origin-Embedder-Policy = credentialless.
Nginx:
add_header Cross-Origin-Embedder-Policy "credentialless" always;
Koristite credentialless umjesto require-corp — manje je vjerovatno da pokvari vanjske resurse. Temeljito testirajte na stagingu; pazite da li neka skripta treće strane, font ili embed prestaje učitavati. Ako nešto pukne i zapravo ne trebate funkcije koje COEP otključava, jednostavno uklonite header — nema kazne za to što ga nemate.
Napomene o platformama
- Google Workspace / Microsoft 365: ovi pokreću vaš imejl, ne vaš sajt, pa ovdje nema šta podešavati. Ovi headeri pripadaju gdje god je vaš sajt zapravo hostovan (vaš CDN, host ili server).
- Uobičajeni managed hostovi / graditelji sajtova (Wix, Squarespace, Shopify, i sl.): prilagođeni response headeri možda nisu konfigurisani na nižim planovima. Ako ih ne možete dodati, to je u redu — informativni su i ne utiču na vašu ocjenu. Postavljanje vašeg sajta iza CDN-a poput Cloudflare-a je uobičajeni način za dobivanje kontrole nad headerima.
- WordPress na vlastitom hostingu: postavite ih u konfiguraciji web servera (Nginx/Apache gore) ili putem CDN-a, a ne u pluginu gdje je to moguće — nivo servera/CDN-a je čišći i primjenjuje se na svaki odgovor.
Česte greške
- Omogućavanje COEP-a “da budemo temeljiti” i kvarenje sajta. Ovo je glavna greška. COEP zahtijeva prijavu od svega što učitavate; flip-ajte ga bez testiranja i vaša analitika, fontovi i embedovi mogu nestati. Ako ne trebate browser funkcije koje otključava, ne postavljajte ga.
- Tretiranje ovih kao hitnih jer ih je skener pomenuo. Informativni su. Bodovani web headeri (HTTPS, HSTS, CSP, clickjacking, MIME-sniffing) dolaze prvi — ispravite te prije trošenja ikakve energije ovdje.
- Postavljanje CORP-a previše strogo kad zapravo objavljujete ugrađive assete. Ako namjerno servira logo, badge ili API za druge sajtove da koriste, blanket
same-originCORP će ih blokirati. Olabavite ga samo na tim odgovorima umjesto napuštanja headera svugdje. - Dodavanje headera na nivou stranice/app-a i propuštanje nekih odgovora. Postavite ih na nivou servera ili CDN-a da se primjenjuju na svaki odgovor (slike, skripte, API endpointe), a ne samo na HTML stranice.
- Brkanje ovih sa SSL katancem. HTTPS šifrira vezu; ovi kontrolišu cross-site interakciju. Nepovezani su i trebate oboje.
Napomena o ocjeni
Da budemo potpuno jasni: nijedna od ova tri provjere ne utiče na vašu ocjenu. Registrovane su u našoj metodologiji kao informativne, sa nula bodova, i nedostajući nikad vas ništa ne košta. Površujemo ih jer su ona dva bezbedna jeftina, prava poboljšanja i jer je viđanje punog prikaza korisno — ne zato što postoji broj za obranu. Ako ne uradite ništa ovdje, vaša ocjenu je potpuno ista. Ako dodate COOP i CORP, zatvorili ste par pravih (ako i nišnih) praznina besplatno. To je pravi način za čitanje ove stranice: opcionalni polish, s jednom jasno označenom zamkom za izbjegavanje.
Često postavljana pitanja
Ovi ne utiču na moju ocjenu — da li se uopšte baviti njima?
Dva od njih, da; jedan, vjerovatno ne. COOP i CORP su besplatni, traju minuta i neće pokvariti vaš sajt — zatvaraju prave (ako i nišne) attack pathove, pa su vrijedni radi jeftine higijene. COEP je napredan i može pokvariti alate trećih strana, pa većina preduzeća treba ga ostaviti isključenim osim ako konkretno ne trebaju browser funkcije koje otključava. Nijedan od trojice ne mijenja vaš skor ni u kom smjeru, pa nema hitnosti — tretirajte ona dva bezbedna kao sređivanje kad vam je developer sljedeći put u sajtu.
Nisam tehničar — moram li ovo sam raditi?
Ne osobno, i ne hitno. Jer su informativni, ništa loše se ne dešava vašoj ocjeni ako ih preskočite. Ako biste željeli dodati ona dva bezbedna, prosledite odeljak 'Kako popraviti' ko god upravlja vašim sajtom ili CDN-om — to su par jednolinijskih postavki i popravka je besplatna. Jedino što treba eksplicitno naglasiti je COEP: recite im da ga ne uključuju bez testiranja, jer može pokvariti analitiku i ugrađene widgete.
Koja je razlika između ovih i headera koji ZAISTA utiču na moju ocjenu?
Bodovani web-bezbednosni headeri — HTTPS redirect, HSTS, Content-Security-Policy, zaštita od clickjackinga (X-Frame-Options) i MIME-sniffing zaštita — brane od uobičajenih, široko iskorišćenih napada, pa njihovo odsustvo košta bodove. Ova tri na ovoj stranici (COOP, CORP, COEP) su novije, specijaliziranije browser-isolation kontrole. Dobra su praksa, ali još nisu osnovna očekivanja, pa ih izvještavamo bez bodovanja. Najprije uradite bodovane; ovi su polish na vrhu.
Hoće li dodavanje COOP-a ili CORP-a pokvariti moj sajt ili integracije partnera?
Preporučene postavke (obje 'same-origin') dizajnirane su da budu bezbedne. COOP jedino prekida vezu s prozorima koje vaš sajt otvara u popupima — normalno pregledanje, vaše vlastite stranice i obični linkovi su nepromijenjeni. CORP jedino sprečava *druge* sajtove od ugrađivanja vaših slika i skripti; vaš vlastiti sajt učitava vlastite resurse tačno kao i prije. Ako zapravo servira assete (poput javnog loga ili API-ja) koje drugi sajtovi trebaju ugrađivati, vaš developer može koristiti permisivniju postavku na tim specifičnim odgovorima. Jedino koji zaista riskira kvarenje je COEP — ostavite taj isključenim osim ako nije testiran.
Šta me hotlinking zaista košta?
Kad drugi sajt ugrađuje vašu sliku ili skriptu direktno s vašeg servera umjesto hostiranja vlastite kopije, svaki posjetilac njihovog sajta je preuzima od vas — na vašem bandwidth računu i prikazujući vaš asset u kontekstu koji niste odobrili. Za manje preduzeće rijetko je katastrofično, ali je besplatan novac koji odlazi, i CORP ('same-origin') to zaustavlja na browser nivou. Takođe zatvara suptilni data-leak path na koji se napredni (Spectre-class) browser napadi oslanjaju.
Kako izgleda 'dobro' za svaki od ovih?
COOP: Cross-Origin-Opener-Policy header postavljen na 'same-origin'. CORP: Cross-Origin-Resource-Policy header postavljen na 'same-origin'. COEP: Cross-Origin-Embedder-Policy header — i ako ga ikad postavite, 'credentialless' je bezbednija vrijednost od 'require-corp'. Naš izvještaj jednostavno bilježi da li je svaki prisutan i na šta je postavljen; nikad vas ne kažnjava zbog odsustva. Ciljajte na COOP i CORP prisutne; ostavite COEP odsutnim osim ako ga niste testirali.