Defaults.Exposed

Defaults.ExposedPopravki › Glave za izolacijo med izvori (COOP / CORP / COEP)

Kako popraviti Glave za izolacijo med izvori (COOP / CORP / COEP)

Tri neobvezna navodila brskalnika, ki nadzorujejo, kako so druga spletna mesta dovoljena pri interakciji z vašim — odpiranje v pojavnih oknih, vdelava vaših slik in skript ali vlečenje vaših virov na njihove strani. So moderna utrditev, ne osnovna nujnost, in pri našem točkovanju so informativne: njihova odsotnost ne zniža vaše ocene. A dve varni zapreta tiho phishing v pojavnih oknih in vrzel kraje pasovne širine, in skrbna IT ekipa kupca bo opazila, ko sta prisotni.

Bistvo za vaše podjetje: Dve od teh treh glav zaustavljata sofisticirani phishing v pojavnih oknih in preprečujeta drugim stranem, da neposredno vdelujejo vaše slike in skripte (kar stane pasovno širino in lahko pušča podatke). Sta brezplačni, razvijalcu vzameta okoli 15 minut in ničesar ne bosta pokvarili. Tretja je napredna in lahko pokvari analitiko, pisave in vdelave — večina podjetij jo pusti izklopljeno. Nobena od treh ne vpliva na vašo oceno, zato ju obravnavajte kot polituro, ne paniko: naredite dve varni, preskočite tvegano, razen če jo posebej potrebujete.

Kaj vas to lahko stane

Zakaj je to pomembno. To so napredne glave utrjevanja brskalnika. Po naši metodologiji so vse tri informativne — registrirane so z nič točkami in nikoli ne premaknejo vaše ocene — ker so napredni nadzorni elementi, brez katerih stran legitimno deluje, eden pa lahko naredi škodo, če je napačno uporabljen. Poročamo o njih, da vidite, kje stojite. Dve varni (COOP in CORP) je resnično vredno dodati: brezplačni, hitri in zapreta pravi phishing v pojavnih oknih in vrzeli kraje virov brez pokvaritve česarkoli.

Kaj to je v preprostem jeziku

Ko nekdo obišče vašo spletno stran, njihov brskalnik ne naloži le vaših strani v izolaciji — prav tako odloča, kako so druge spletne strani dovoljene pri interakciji z vašo. Ali sme druga stran odpreti vašo stran v pojavnem oknu in jo zadržati? Ali sme druga stran poseči in vdelati vaše slike in skripte v svoje strani? Ali sme vaša lastna stran varno uporabljati določene zmogljive, zaklenjene brskalniške funkcije?

Te tri glave so kratka, nevidna navodila, ki jih vaša spletna stran pošlje brskalniku vsakega obiskovalca, da odgovorijo natanko na ta vprašanja. Znane so po inicialkah:

Dve od njih (COOP in CORP) je varno dodati in resnično koristni. Tretja (COEP) je napredna in lahko pokvari stvari, če je vklopljena brezskrbno.

Najpomembnejša stvar za vedeti na začetku: pri našem točkovanju so vse tri informativne. Ne vplivajo na vašo oceno. Manjkajoča vas ne stane nič. O njih poročamo, da vidite, kje stojite in pospravite lahke zmage — ne da bi se panično ukvarjali s številko.

Kaj vas to lahko stane

To so nišna tveganja, ne naslovna — a so resnična in popravki so brezplačni.

Kaj vsak dejansko je

COOP — Cross-Origin-Opener-Policy (varen, priporočen)

Ko druga spletna stran odpre vašo prek pojavnega okna ali window.open, si oba okna navadno ohranita sklico drug na drugega. Ta kanal je mogoče zlorabiti: odpirač sme manipulirati ali preusmeriti vaše okno, brati odlomke URL-ja in izvesti prepričljiv phishing z vašo pravo domeno. COOP: same-origin to razmerje prekine — vaše okno postane izolirano od česarkoli, ki ga je odprlo prek izvorov. Normalno brskanje, vaše lastne notranje povezave in navigacija niso prizadete.

Kako izgleda “dobro”: Cross-Origin-Opener-Policy: same-origin.

CORP — Cross-Origin-Resource-Policy (varen, priporočen)

Privzeto so vaše slike, skripte in druge datoteke vdelavane s strani katerekoli strani kjerkoli. CORP: same-origin brskalniku naroči, da zavrne medizvorišče vdelavo vaših virov — tako da tuje strani ne morejo hotlinkati vašega premoženja ali ga vlečiti v svoje strani. Vaša lastna stran še vedno naloži lastne vire natanko tako kot prej; blokirane so le zunanje strani.

Kako izgleda “dobro”: Cross-Origin-Resource-Policy: same-origin. (Če namerno objavljate premoženje, ki ga drugi vdelajo — javni logotip, odprt API — vaš razvijalec to sprosti samo v tistih specifičnih odzivih.)

COEP — Cross-Origin-Embedder-Policy (napreden, navadno pustite izklopljeno)

COEP zaključi “medizvorišče izolacijo”: v kombinaciji z COOP zahteva, da vsak vir, ki ga stran naloži, eksplicitno opt-ina (prek CORS ali CORP). Pravilno narejena, to odklene določene zmogljive brskalniške funkcije (kot SharedArrayBuffer) in doda drug sloj proti napadom razreda Spectre. A ker zahteva opt-in od vsega, kar naložite, zlahka pokvari orodja tretjih oseb — analitiko, pisave, vdelane widgete — ki niso bila zgrajena za opt-in. Večina spletnih mest ne potrebuje funkcij, ki jih odklene, in ne bi smela nositi tveganja pokvaritve.

Kako izgleda “dobro”: za redko stran, ki jo potrebuje, Cross-Origin-Embedder-Policy: credentialless — varnejša vrednost, manj verjetno, da pokvari zunanje vire, kot require-corp. Za vse ostale je odsotna v redu in naše poročilo vas za to ne bo kaznovalo.

Kako to popraviti (brezplačno, ~15 minut)

Posredujte to vaši IT osebi ali spletnemu razvijalcu — popravek je brezplačen. Dodajanje COOP in CORP je par enolinski nastavitev na vašem strežniku ali CDN-u; ni licence in ni tekočih stroškov. Edino navodilo za lastnika: naredite dve varni in ne vklopite COEP brez testiranja.

To so glave odziva, nastavljene kjerkoli so odgovori vaše strani proizvajani — najlažje na vašem CDN-u (npr. Cloudflare), če ga imate, sicer v konfiguraciji spletnega strežnika.

Dve varni glavi (priporočeni za vse)

Cloudflare — Pravila → Pravila preoblikovanja → Spremi glavo odziva → Nastavi:

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"

Te je varno dodati in ne bosta pokvarili normalne funkcionalnosti. Po deployment naložite nekaj strani in potrdite, da se stran obnaša natanko tako kot prej (tako bi moralo biti).

Napredna glava (le če jo posebej potrebujete)

Ne vklopite tega brez predhodno testiranja v staging okolju. COEP lahko pokvari analitiko, pisave in vdelane widgete.

Cloudflare: Pravila preoblikovanja → Nastavi Cross-Origin-Embedder-Policy = credentialless.

Nginx:

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

Uporabite credentialless namesto require-corp — manj verjetno, da pokvari zunanje vire. Temeljito testirajte v staging okolju; opazujte, ali katera skripta tretjih oseb, pisava ali vdelava preneha nalagati. Če se kaj pokvari in dejansko ne potrebujete funkcij, ki jih COEP odklene, preprosto odstranite glavo — za njeno odsotnost ni kazni.

Opombe za platforme

Pogoste napake

Opomba o oceni

Da bom popolnoma jasen: nobena od teh treh pregledov ne vpliva na vašo oceno. So registrirani v naši metodologiji kot informativni, z nič točkami, in manjkajoča nikoli ne stane nič. Jih izpostavimo, ker sta dve varni poceni, pristni izboljšavi in ker je videnje celotne slike koristno — ne ker je treba braniti neko število. Če tukaj ne naredite ničesar, je vaša ocena natanko enaka. Če dodate COOP in CORP, ste brezplačno zaprli par realnih (čeprav nišnih) vrzeli. To je pravi način branja te strani: neobvezna politura z eno jasno označeno pastjo za izogniti se.

Pogosta vprašanja

Te ne vplivajo na mojo oceno — ali se sploh ukvarjati?

Dve od njih, da; ena verjetno ne. COOP in CORP sta brezplačni, vzameta minute in ne bosta pokvarili vaše strani — zapreta pravi (čeprav nišni) napadalni poti, zato jih je vredno narediti kot poceni higieno. COEP je napreden in lahko pokvari orodja tretjih oseb, zato večina podjetij tega ne bi smela vklopiti brez posebne potrebe po brskalniških funkcijah, ki jih odklene. Nobena od treh ne spremeni vaše ocene v nobeno smer, zato ni nujnosti — obravnavajte dve varni kot tidying-up, ko bo razvijalec naslednjič v strani.

Nisem tehničen — ali moram to ukrepati?

Ne osebno in ne nujno. Ker so informativne, se vaši oceni ne zgodi nič slabega, če jih preskočite. Če bi radi dodali dve varni, posredujte razdelek 'Kako to popraviti' komurkoli, ki upravlja vašo spletno stran ali CDN — je par enolinski nastavitev in popravek je brezplačen. Edina, ki jo je treba eksplicitno opozoriti: COEP — recite mu, naj je ne vklopi brez testiranja, ker lahko pokvari analitiko in vdelane widgete.

Kaj je razlika med temi in glavami, ki VPLIVAJO na mojo oceno?

Ocenjene glave spletne varnosti — preusmeritev HTTPS, HSTS, Content-Security-Policy, zaščita pred clickjackingom (X-Frame-Options) in zaščita pred MIME-sniffingom — branijo pred pogostimi, široko izkoriščanimi napadi, zato njihova odsotnost stane točke. Te tri (COOP, CORP, COEP) so novejši, bolj specializirani nadzorni elementi brskalniške izolacije. So dobra praksa, a še ne osnovna pričakovanje, zato jih poročamo brez točkovanja. Najprej naredite ocenjene; te so polirje na vrhu.

Ali bo dodajanje COOP ali CORP pokvarilo mojo spletno stran ali integracije partnerjev?

Priporočene nastavitve (obe 'same-origin') so zasnovane za varnost. COOP le odreže zvezo z okni, ki jih vaša stran odpre v pojavnih oknih — normalno brskanje, vaše lastne strani in navadne povezave niso prizadete. CORP le preprečuje *drugim* stranem, da vdelujejo vaše slike in skripte; vaša lastna stran natanko tako kot prej naloži lastne vire. Če dejansko servirate premoženje (kot javni logotip ali API), ki ga je treba vdelati na drugih straneh, vaš razvijalec to sprosti posebej v tistih odzivih. Tista, ki resnično tvega pokvaritev, je COEP — to pustite izklopljeno brez testiranja.

Kaj mi hotlinking dejansko stane?

Ko druga stran neposredno vdeluje vašo sliko ali skripto iz vašega strežnika namesto gostuje svojo kopijo, vsak obiskovalec njihove strani jo prenese od vas — na vašem računu za pasovno širino, z vašim premoženjem v kontekstu, ki ga niste odobrili. Za majhno podjetje je redko katastrofalno, a je brezplačen denar iz žepa in CORP ('same-origin') to zaustavi na ravni brskalnika. Prav tako zapre subtilno pot puščanja podatkov, na katero se zanašajo napredni (razreda Spectre) napadi na brskalnik.

Kako izgleda 'dobro' za vsako od teh?

COOP: glava Cross-Origin-Opener-Policy, nastavljena na 'same-origin'. CORP: glava Cross-Origin-Resource-Policy, nastavljena na 'same-origin'. COEP: glava Cross-Origin-Embedder-Policy — in če jo nastavite sploh, je 'credentialless' varnejša vrednost kot 'require-corp'. Naše poročilo preprosto ugotavlja, ali je vsaka prisotna in na kaj je nastavljena; nikoli vas ne kaznuje za manjkajočo. Ciljajte na COOP in CORP prisotni; pustite COEP odsotno brez testiranja.