Defaults.Exposed

Defaults.ExposedIspravci › 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

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:

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.

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

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

Česte greške

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.