Defaults.Exposed

Defaults.ExposedOpravy › Hlavičky cross-origin izolace (COOP / CORP / COEP)

Jak opravit Hlavičky cross-origin izolace (COOP / CORP / COEP)

Tři volitelné instrukce prohlížeče, které kontrolují, jak jiné weby smí interagovat s vaším — otevírat ho v popupech, vkládat jeho obrázky a skripty nebo tahání jeho zdrojů na vlastní stránky. Jsou to moderní zpevnění, nikoli základní nutnost a v našem hodnocení jsou informativní: chybějící nevnižují vaše hodnocení. Ale ty dvě bezpečné uzavírají tichý phishingový gap a kradení šířky pásma a opatrný IT tým kupujícího si všimne, když jsou přítomny.

Výsledek pro vaše podnikání: Dvě z těchto tří hlaviček zastavují sofistikovaný popup-phishing a brání jiným webům v hotlinkování vašich obrázků a skriptů (což vás stojí šířku pásma a může způsobit úniky dat). Jsou zdarma, vývojáři trvají asi 15 minut a nic nerozbijí. Třetí je pokročilá a může rozbít analytiku, písma a vkládané widgety — většina firem by ji měla nechat vypnutou. Žádná z nich neovlivňuje vaše hodnocení, takže je berte jako leštění, ne paniku: udělejte ty dvě bezpečné, přeskočte riskantní, pokud ji konkrétně nepotřebujete.

Co vás to může stát

Proč na tom záleží. Toto jsou výhledové hlavičky zpevnění prohlížeče. V naší metodologii jsou všechny tři informativní — jsou zaregistrovány s nula body a nikdy nepohnou vaším hodnocením — protože jsou to pokročilé ovládací prvky, bez kterých může web legitimně fungovat, a jedna z nich může ublížit, pokud je špatně aplikována. Hlásíme o nich, abyste viděli, kde stojíte. Ty dvě bezpečné (COOP a CORP) skutečně stojí za přidání: zdarma, rychlé a uzavírají skutečné popup-phishingové a kradení zdrojů mezery bez rozbití čehokoliv.

Co tyto jsou, prostými slovy

Když někdo navštíví váš web, prohlížeč nenačítá vaše stránky izolovaně — také rozhoduje, jak jiné weby smí interagovat s vaším. Může jiný web otevřít váš web v popup okně a udržovat ho? Může jiný web sahovat přes a vkládat vaše obrázky a skripty na své vlastní stránky? Může váš vlastní web bezpečně používat určité výkonné, uzamčené funkce prohlížeče?

Tyto tři hlavičky jsou krátké, neviditelné instrukce, které váš web posílá prohlížeči každého návštěvníka, aby odpověděl přesně na tyto otázky. Jsou známy svými iniciálami:

Dvě z nich (COOP a CORP) jsou bezpečné k přidání a skutečně užitečné. Třetí (COEP) je pokročilá a může věci rozbít, pokud je zapnuta neopatrně.

Nejdůležitější věc, která vědět předem: v našem hodnocení jsou všechny tři informativní. Neovlivňují vaše hodnocení. Chybějící vás nestojí nic. Hlásíme o nich, abyste viděli, kde stojíte a uklidili snadné výhry — nikoli abyste panikařili o čísle.

Co vás to může stát

Toto jsou niche rizika, nikoli titulní — ale jsou skutečná a opravy jsou zdarma.

Co každá z nich skutečně je

COOP — Cross-Origin-Opener-Policy (bezpečná, doporučená)

Když jiný web otevře váš web pomocí popupu nebo window.open, dvě okna si normálně mohou udržovat odkaz na sebe. Tento odkaz může být zneužit: otvírač může manipulovat nebo přesměrovat vaše okno, číst fragmenty jeho URL a inscenovat přesvědčivé phishing pomocí vaší skutečné domény. COOP: same-origin rozbíjí tento vztah — vaše okno se stane izolovaným od čehokoliv, co ho otevřelo přes různé origin. Normální prohlížení, vaše vlastní interní odkazy a obyčejná navigace nejsou vůbec ovlivněny.

Jak vypadá ‘dobré’: Cross-Origin-Opener-Policy: same-origin.

CORP — Cross-Origin-Resource-Policy (bezpečná, doporučená)

Ve výchozím nastavení mohou vaše obrázky, skripty a jiné soubory být vloženy jakýmkoliv webem kdekoliv. CORP: same-origin říká prohlížečům odmítnout cross-origin vkládání vašich zdrojů — takže jiné weby nemohou hotlinkovat vaše assety nebo je tahát na své stránky. Váš vlastní web stále načítá vlastní zdroje přesně jako předtím; pouze cizí weby jsou blokovány.

Jak vypadá ‘dobré’: Cross-Origin-Resource-Policy: same-origin. (Pokud záměrně zveřejňujete assety pro ostatní ke vkládání — veřejné logo, otevřené API — váš vývojář může toto na těch konkrétních odpovědích uvolnit.)

COEP — Cross-Origin-Embedder-Policy (pokročilá, obvykle nechte vypnutou)

COEP dokončí “cross-origin izolaci”: kombinovaná s COOP vyžaduje, aby každý zdroj, který vaše stránka načítá, explicitně přihlásil (přes CORS nebo CORP). Provedeno správně, toto odemkne určité výkonné funkce prohlížeče (jako SharedArrayBuffer) a přidá další vrstvu proti Spectre-class útokům. Ale protože vyžaduje přihlášení od všeho, co načítáte, snadno rozbíjí nástroje třetích stran — analytiku, písma, vložené widgety — které nebyly postaveny pro přihlášení. Většina webů nepotřebuje funkce, které odemyká a neměla by nést riziko rozbití.

Jak vypadá ‘dobré’: pro vzácný web, který to potřebuje, Cross-Origin-Embedder-Policy: credentialless — bezpečnější hodnota, méně pravděpodobně rozbije externí zdroje než require-corp. Pro všechny ostatní, nepřítomná je v pořádku a naše zpráva vás za to nepotrestá.

Jak to opravit (zdarma, ~15 minut)

Předejte toto vašemu IT pracovníkovi nebo webovému vývojáři — oprava je zdarma. Přidání COOP a CORP je pár jednořádkových nastavení na vašem serveru nebo CDN; není žádná licence a žádné průběžné náklady. Jediná instrukce pro majitele je: udělejte ty dvě bezpečné a nezapínejte COEP bez testování.

Toto jsou hlavičky odpovědi, nastavené kdekoliv jsou odpovědi vašeho webu produkovány — nejsnadněji na vašem CDN (např. Cloudflare), pokud ho máte, jinak v konfiguraci vašeho webového serveru.

Dvě bezpečné hlavičky (doporučeno pro všechny)

Cloudflare — Pravidla → Transformační pravidla → Upravit hlavičky odpovědi → Nastavte:

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"

Tyto jsou bezpečné k přidání a nerozbijí normální funkčnost. Po nasazení znovu načtěte pár stránek a potvrďte, že web se chová přesně jako předtím (měl by).

Pokročilá hlavička (pouze pokud ji konkrétně potřebujete)

Nezapínejte toto bez nejprve testování na stagingu. COEP může rozbít analytiku, písma a vložené widgety.

Cloudflare: Transformační pravidla → Nastavte Cross-Origin-Embedder-Policy = credentialless.

Nginx:

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

Použijte credentialless spíše než require-corp — je méně pravděpodobné rozbití externích zdrojů. Důkladně testujte na stagingu; sledujte, zda jakýkoliv skript třetí strany, písmo nebo vložení přestane načítat. Pokud se něco rozbije a vy skutečně nepotřebujete funkce, které COEP odemyká, jednoduše hlavičku odstraňte — není žádná penalizace za její nepřítomnost.

Poznámky k platformě

Běžné chyby

Poznámka k hodnocení

Zcela otevřeně: žádná z těchto tří kontrol neovlivňuje vaše hodnocení. Jsou zaregistrovány v naší metodologii jako informativní, s nula body a chybějící vás nikdy nestojí nic. Zobrazujeme je, protože ty dvě bezpečné jsou levná, skutečná zlepšení a protože vidět celý obrázek je užitečné — nikoli proto, že je číslo k obraně. Pokud zde nic neuděláte, vaše hodnocení je přesně stejné. Pokud přidáte COOP a CORP, uzavřeli jste pár skutečných (i když niche) mezer zdarma. Takto je správné přemýšlet o této stránce: volitelné leštění s jednou jasně označenou pastí k vyhnutí.

Časté dotazy

Tyto neovlivňují mé hodnocení — mám se vůbec namáhat?

Dvě z nich ano; jednu pravděpodobně ne. COOP a CORP jsou zdarma, trvají minuty a nerozbijí váš web — uzavírají skutečné (i když niche) útočné cesty, takže stojí za to je přidat jako levnou hygienu. COEP je pokročilá a může rozbít nástroje třetích stran, takže většina firem by ji měla nechat vypnutou, pokud konkrétně nepotřebuje funkce prohlížeče, které odemyká. Žádná ze tří nemění vaše skóre jakýmkoliv způsobem, takže zde není žádná naléhavost — berte ty dvě bezpečné jako uklízení, příště když bude váš vývojář na webu.

Nejsem technik — musím to řešit?

Osobně ne, a nenaléhavě. Protože jsou tyto informativní, nic špatného se stane vašemu hodnocení, pokud je přeskočíte. Pokud byste chtěli přidat ty dvě bezpečné, předejte sekci 'Jak to opravit' tomu, kdo spravuje váš web nebo CDN — je to pár jednořádkových nastavení a oprava je zdarma. Jedinou, kterou explicitně označit, je COEP: řekněte jim, aby ji nezapínali bez testování, protože může rozbít analytiku a vložené widgety.

Jaký je rozdíl mezi těmito a hlavičkami, které DO ovlivňují mé hodnocení?

Hodnocené bezpečnostní hlavičky webu — přesměrování HTTPS, HSTS, Content-Security-Policy, ochrana proti clickjackingu (X-Frame-Options) a ochrana proti MIME-sniffingu — brání běžným, široce zneužívaným útokům, takže jejich absence stojí body. Tři na této stránce (COOP, CORP, COEP) jsou novější, specializovanější ovládací prvky izolace prohlížeče. Jsou dobrou praxí, ale zatím ne základním očekáváním, takže je hlásíme bez jejich hodnocení. Nejdříve udělejte hodnocené; tyto jsou leštění na vrcholu.

Rozbije přidání COOP nebo CORP můj web nebo integrace mých partnerů?

Doporučená nastavení (obojí 'same-origin') jsou navržena jako bezpečná. COOP pouze přeruší spojení s okny, která váš web otevírá v popupech — normální prohlížení, vaše vlastní stránky a obyčejné odkazy nejsou ovlivněny. CORP pouze zastavuje *jiné* weby ve vkládání vašich obrázků a skriptů; váš vlastní web načítá vlastní zdroje přesně jako předtím. Pokud skutečně obsluhujete assety (jako veřejné logo nebo API), které jiné weby mají vkládat, váš vývojář může použít permisivnější nastavení na těch konkrétních odpovědích. Ta, která skutečně riskuje rozbití, je COEP — nechte tu vypnutou, pokud není testována.

Co mě 'hotlinking' skutečně stojí?

Když jiný web vloží váš obrázek nebo skript přímo z vašeho serveru místo hostování vlastní kopie, každý návštěvník jejich stránky ho stahuje od vás — na vašem účtu za šířku pásma a zobrazující váš asset v kontextu, který jste neschválili. Pro malé firmy je to zřídka katastrofální, ale jsou to volné peníze ven ze dveří a CORP ('same-origin') to zastavuje na úrovni prohlížeče. Také uzavírá subtilní cestu úniku dat, na kterou pokročilé (Spectre-class) prohlížečové útoky spoléhají.

Jak 'dobré' vypadá pro každou z těchto?

COOP: hlavička Cross-Origin-Opener-Policy nastavená na 'same-origin'. CORP: hlavička Cross-Origin-Resource-Policy nastavená na 'same-origin'. COEP: hlavička Cross-Origin-Embedder-Policy — a pokud ji nastavíte vůbec, 'credentialless' je bezpečnější hodnota než 'require-corp'. Naše zpráva jednoduše zaznamená, zda je každá přítomna a na co je nastavena; nikdy vás nepotrestá za chybějící. Zaměřte se na COOP a CORP přítomné; nechte COEP nepřítomnou, pokud jste netestovali.