Defaults.Exposed

Defaults.ExposedReš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

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:

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.

Š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:

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

Česte greške

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.