Defaults.Exposed › Поправки › Заглавки за cross-origin изолация (COOP / CORP / COEP)
Как да поправите Заглавки за cross-origin изолация (COOP / CORP / COEP)
Три незадължителни инструкции за браузъра, контролиращи как другите уебсайтове имат право да взаимодействат с вашия — отварянето му в изскачащи прозорци, вграждането на неговите изображения и скриптове или изтеглянето на ресурсите му в собствените им страници. Те са съвременно втвърдяване, а не основна задължителна функция, и в нашата оценка са информационни: липсата им не намалява оценката ви. Но двете безопасни затварят тиха пропаст за фишинг с изскачащи прозорци и кражба на честотна лента, и внимателният IT екип на купувача ще забележи когато са налице.
Заключение за вашия бизнес: Две от тези три заглавки спират сложен фишинг с изскачащи прозорци и предотвратяват hotlinking на вашите изображения и скриптове от другите сайтове (което ви струва честотна лента и може да изтича данни). Безплатни са, отнемат около 15 минути за разработчик и няма да счупят нищо. Третата е разширена и може да счупи анализи, шрифтове и вградени елементи — повечето бизнеси трябва да я оставят изключена. Нито една от тях не засяга оценката ви, така че третирайте ги като лак, а не паника: правете двете безопасни, пропускайте рисковата, освен ако не ви трябва специално.
Какво може да ви струва това
- Измамник отваря вашия реален сайт в изскачащ прозорец и запазва дистанционно управление над него — тихо пренасочвайки клиента ви към фалшиво влизане в момента, в който погледнат другаде. Безопасната заглавка (COOP) прекъсва тази контролна връзка напълно.
- Другите уебсайтове вграждат снимките на продуктите, логата и скриптовете ви директно от вашия сървър (hotlinking) — вие плащате за честотната лента всеки път, когато техните посетители заредят страницата, и активите ви се появяват на сайтове, никога нямали да одобрите.
- IT екипът на потенциален клиент прави сканиране на заглавките преди подписване и вижда, че сте добавили съвременно cross-origin втвърдяване — малък сигнал, но ви поставя в колоната 'те приемат това сериозно' вместо 'голо минимално'.
- Разработчик, опитвайки се да е задълбочен, включва разширената заглавка за изолация (COEP) без тестване — и за нощ счупва Google Analytics, уеб шрифтовете и вградения инструмент за резервации. Знаенето коя заглавка е безопасна и коя рискова предотвратява самопричинено прекъсване.
- Контролният списък на одитор споменава cross-origin изолация; предпочитате да показвате 'налице и правилно' за двете безопасни, вместо да обяснявате защо нищо не е там.
Защо има значение. Това са ориентирани към бъдещето заглавки за втвърдяване на браузъра. В нашата методология и трите са информационни — регистрирани са с нула точки и никога не движат оценката ви — защото са разширени контроли, без които сайтът може легитимно да работи, и един от тях може да навреди при неправилно прилагане. Докладваме за тях, за да виждате позицията си. Двете безопасни (COOP и CORP) наистина си заслужава да се добавят: безплатни, бързи и затварят реални пропасти за фишинг с изскачащи прозорци и кражба на ресурси без счупване на нищо.
Какво са тези, с прости думи
Когато някой посещава вашия уебсайт, браузърът им не само зарежда страниците ви в изолация — той също решава как другите уебсайтове имат право да взаимодействат с вашия. Може ли друг сайт да отвори вашия в изскачащ прозорец и да го задържи? Може ли друг сайт да достигне и да вгради вашите изображения и скриптове в собствените си страници? Може ли вашият собствен сайт безопасно да използва определени мощни, заключени функции на браузъра?
Тези три заглавки са кратки, невидими инструкции, изпращани от вашия уебсайт до браузъра на всеки посетител, за да отговорят точно на онези въпроси. Известни са с инициалите си:
- COOP — Cross-Origin-Opener-Policy. Контролира дали другите сайтове, отварящи вашия в изскачащ прозорец, могат да запазят дистанционен контрол върху него.
- CORP — Cross-Origin-Resource-Policy. Контролира дали другите сайтове имат право да вграждат вашите изображения, скриптове и другите файлове в собствените си страници.
- COEP — Cross-Origin-Embedder-Policy. Разширен контрол, комбиниран с COOP, „изолиращ” страницата ви, за да може да използва безопасно определени мощни функции на браузъра.
Две от тях (COOP и CORP) са безопасни за добавяне и наистина полезни. Третата (COEP) е разширена и може да счупи неща при небрежно включване.
Най-важното за знаене предварително: в нашата оценка и трите са информационни. Те не засягат оценката ви. Липсваща не ви струва нищо. Докладваме за тях, за да виждате позицията си и да почистите лесните победи — а не за да се паникьосвате от число.
Какво може да ви струва това
Това са нишови рискове, а не заглавни — но са реални и поправките са безплатни.
-
Фишинг с изскачащи прозорци, запазващ дистанционен контрол върху вашия реален сайт. Без COOP, страницата на измамник може да отвори действителния ви уебсайт в изскачащ прозорец и да задържи жива референция към него. Докато вниманието на клиента ви е на страницата на измамника, нападателят може да пренасочи онзи изскачащ прозорец — вашия реален домейн в адресната лента — към фалшиво влизане или екран за плащане точно в момента, когато клиентът се обърне обратно. COOP, зададен на „same-origin”, прекъсва тази контролна връзка, за да не може изскачащият прозорец да бъде управляван дистанционно.
-
Другите сайтове, откраднали вашата честотна лента (и поставили активите ви там, където не искате). Без CORP, всеки уебсайт в интернет може да вгради снимките на вашите продукти, логата, скриптовете и другите файлове директно от вашия сървър — „hotlinking.” Всеки посетител на тяхната страница изтегля файла от вас, от сметката ви за честотна лента, с актива ви появяващ се в контекст, никога не одобрен от вас. CORP, зададен на „same-origin”, спира外部 сайтовете да вграждат вашите ресурси.
-
Тиха пътека за изтичане на данни за разширени атаки на браузъра. Същото cross-origin вграждане, активиращо hotlinking, е и една от пътеките, използвани от сложни, side-channel атаки на браузъра (семейството Spectre) за четене на данни, до които не трябва да имат достъп. COOP и CORP заедно затварят тази пътека на нивото на браузъра. За повечето малки бизнеси това е ремък-и-скоби, но е безплатен ремък-и-скоби.
-
Самопричинено прекъсване от грешната заглавка. Разширената, COEP, изисква всеки ресурс, зареждан от вашия сайт, изрично да се абонира. Включете я без тестване и анализите, уеб шрифтовете, вградените карти, джаджите за резервации и скриптовете на трети страни могат всичко да спрат да се зареждат — защото никой от тях не е бил помолен да се абонира. Това е единственият начин тези заглавки реално да ви навредят и е напълно предотвратимо: не активирайте COEP без тестване.
-
Пропуснат лесен сигнал за внимателни купувачи. Когато IT екипът на потенциален клиент сканира заглавките ви преди подписване, намирането на съвременно cross-origin втвърдяване на място е малък, но реален сигнал „тези хора приемат сигурността сериозно.” Само по себе си няма да спечели сделка — но е безплатно да е на правилната страна на тази графа.
Какво всъщност е всяко
COOP — Cross-Origin-Opener-Policy (безопасно, препоръчително)
Когато друг уебсайт отвори вашия чрез изскачащ прозорец или window.open, двата прозореца обикновено могат да запазят референция един към друг. Тази връзка може да бъде злоупотребена: отварящият може да манипулира или пренасочи прозореца ви, да чете фрагменти от URL-a му и да организира убедителен фишинг, използвайки вашия реален домейн. COOP: same-origin прекъсва тази връзка — прозорецът ви се изолира от всичко, отворило го от различни origins. Нормалното сърфиране, вашите собствени вътрешни линкове и обикновената навигация са напълно незасегнати.
Как изглежда „добро”: Cross-Origin-Opener-Policy: same-origin.
CORP — Cross-Origin-Resource-Policy (безопасно, препоръчително)
По подразбиране вашите изображения, скриптове и другите файлове могат да бъдат вградени от всеки сайт навсякъде. CORP: same-origin казва на браузърите да отказват cross-origin вграждане на вашите ресурси — така другите сайтове не могат да хотлинкват активите ви или да ги изтеглят в страниците си. Вашият собствен сайт все пак зарежда собствените си ресурси точно както преди; само外部сайтовете са блокирани.
Как изглежда „добро”: Cross-Origin-Resource-Policy: same-origin. (Ако умишлено публикувате активи за вграждане от другите — публично лого, отворен API — разработчикът ви може да разхлаби това на онези конкретни отговори.)
COEP — Cross-Origin-Embedder-Policy (разширена, обикновено оставяйте изключена)
COEP завършва „cross-origin изолация”: комбинирана с COOP, изисква всеки ресурс, зареждан от страницата ви, изрично да се абонира (чрез CORS или CORP). Направено правилно, това отключва определени мощни функции на браузъра (като SharedArrayBuffer) и добавя още един слой срещу Spectre-клас атаки. Но тъй като изисква абониране от всичко, което зареждате, лесно счупва инструменти на трети страни — анализи, шрифтове, вградени джаджи — не изградени за абониране. Повечето уебсайтове не се нуждаят от функциите, отключвани от него, и не трябва да носят риска от счупване.
Как изглежда „добро”: за редкия сайт, нуждаещ се от него, Cross-Origin-Embedder-Policy: credentialless — по-безопасната стойност, по-малко вероятна да счупи外部ресурси от require-corp. За всички останали, отсъстваща е добре и докладът ни няма да ви наказва за нея.
Как да го поправите (безплатно, ~15 минути)
Предайте това на вашия IT специалист или уеб разработчик — поправката е безплатна. Добавянето на COOP и CORP е две еднолинейни настройки на вашия сървър или CDN; без лиценз и без текущи разходи. Единствената инструкция за собственика е: правете двете безопасни и не активирайте COEP без тестване.
Те са заглавки на отговора, задавани там, където се произвеждат отговорите на вашия сайт — най-лесно в CDN (например Cloudflare), ако имате, иначе в конфигурацията на уеб сървъра.
Двете безопасни заглавки (препоръчително за всеки)
Cloudflare — Rules → Transform Rules → Modify Response Headers → Задайте:
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"
Безопасни са за добавяне и няма да счупят нормалната функционалност. След разгръщане презаредете няколко страниц и потвърдете, че сайтът се държи точно както преди (трябва да е така).
Разширената заглавка (само ако специално ви е нужна)
Не я включвайте без предварително тестване в staging. COEP може да счупи анализи, шрифтове и вградени джаджи.
Cloudflare: Transform Rules → Задайте Cross-Origin-Embedder-Policy = credentialless.
Nginx:
add_header Cross-Origin-Embedder-Policy "credentialless" always;
Използвайте credentialless вместо require-corp — по-малко вероятно е да счупи外部ресурси. Тествайте задълбочено в staging; наблюдавайте за скриптове, шрифтове или вградени елементи от трети страни, спрели да се зареждат. Ако нещо се счупи и реално не ви трябват функциите, отключвани от COEP, просто премахнете заглавката — не е наказание за нямане на нея.
Бележки за платформи
- Google Workspace / Microsoft 365: те захранват имейла ви, а не уебсайта ви, така че тук няма нищо за задаване. Тези заглавки принадлежат на каквото хоства вашия уебсайт (вашата CDN, хост или сървър).
- Обичайни управлявани хостове / конструктори на сайтове (Wix, Squarespace, Shopify и т.н.): персонализираните заглавки на отговора може да не са конфигурируеми при по-ниски планове. Ако не можете да ги добавите, добре е — те са информационни и не засягат оценката ви. Поставянето на сайта ви зад CDN като Cloudflare е обичайният начин за получаване на контрол върху заглавките.
- WordPress на собствения ви хостинг: задайте ги в конфигурацията на уеб сървъра (Nginx/Apache по-горе) или чрез CDN, а не в плъгин ако е възможно — нивото на сървър/CDN е по-чисто и се прилага за всеки отговор.
Чести грешки
- Активиране на COEP „за задълбоченост” и счупване на сайта. Тази е голямата. COEP изисква абониране от всичко, което зареждате; включете я без тестване и анализите, шрифтовете и вградените елементи могат да изчезнат. Ако не ви трябват функциите на браузъра, отключвани от нея, не я задавайте.
- Третирането им като спешни, защото скенер ги е споменал. Те са информационни. Оценените заглавки за уеб сигурност (HTTPS, HSTS, CSP, защита срещу clickjacking, защита срещу MIME-sniffing) са първи — поправете тях, преди да харчите каквато и да е енергия тук.
- Задаване на CORP твърде строго, когато реално публикувате вграждаеми активи. Ако умишлено обслужвате лого, значка или API за使用 от другите сайтове, общото
same-originCORP ще ги блокира. Разхлабете го само за онези отговори, вместо да изоставяте заглавката навсякъде. - Добавяне на заглавката на ниво страница/приложение и пропускане на някои отговори. Задайте ги на нивото на сървъра или CDN, за да се прилагат за всеки отговор (изображения, скриптове, API крайни точки), а не само HTML страниц.
- Объркването им с SSL катинара. HTTPS криптира връзката; те контролират cross-site взаимодействие. Без връзка са и искате и двете.
Бележка за оценката
За да бъде напълно ясно: нито една от тези три проверки не засяга оценката ви. Регистрирани са в нашата методология като информационни, с нула точки, и липсваща никога не ви струва нищо. Ние ги извеждаме, защото двете безопасни са евтини, реални подобрения и защото пълната картина е полезна — не защото има число за защитаване. Ако не правите нищо тук, оценката ви е абсолютно същата. Ако добавите COOP и CORP, сте затворили две реални (ако нишови) пропасти безплатно. Това е правилният начин да четете тази страница: незадължителен лак с един ясно обозначен капан за избягване.
ЧЗВ
Те не засягат оценката ми — трябва ли изобщо да се занимавам?
Две от тях — да; едната — вероятно не. COOP и CORP са безплатни, отнемат минути и няма да счупят сайта ви — те затварят реални (ако нишови) пътища за атаки, така че си заслужава като евтина хигиена. COEP е разширена и може да счупи инструменти на трети страни, така че повечето бизнеси трябва да я оставят изключена, освен ако специално се нуждаят от функциите на браузъра, които тя отключва. Нито едната от трите не промени оценката ви в никоя посока, така че няма спешност — третирайте двете безопасни като почистване, следващия път когато разработчикът ви е в сайта.
Не съм технически — задължително ли е да предприема действие?
Не лично и не спешно. Тъй като са информационни, нищо лошо не се случва с оценката ви ако ги пропуснете. Ако искате да добавите двете безопасни, предайте раздела 'Как да го поправите' на когото управлява вашия уебсайт или CDN — две еднолинейни настройки и поправката е безплатна. Единственото за изрично маркиране е COEP: кажете им да не я включват без тестване, тъй като може да счупи анализи и вградени джаджи.
Каква е разликата между тях и заглавките, ЗАСЯГАЩИ оценката ми?
Оценените заглавки за уеб сигурност — HTTPS пренасочване, HSTS, Политика за сигурност на съдържанието, защита срещу clickjacking (X-Frame-Options) и защита срещу MIME-sniffing — защитават срещу чести, широко използвани атаки, така че липсата им струва точки. Трите на тази страница (COOP, CORP, COEP) са по-нови, по-специализирани контроли за изолация в браузъра. Добра практика са, но все още не са базово очакване, така че ги докладваме без оценяване. Първо правете оценените; те са лак отгоре.
Добавянето на COOP или CORP ще счупи ли уебсайта или интеграциите на партньорите ми?
Препоръчителните настройки (и двете 'same-origin') са проектирани да бъдат безопасни. COOP само прекъсва връзката с прозорци, отворени от вашия сайт в изскачащи прозорци — нормалното сърфиране, вашите собствени страници и обикновените линкове са незасегнати. CORP само спира *другите* сайтове да вграждат вашите изображения и скриптове; вашият собствен сайт зарежда собствените си ресурси точно както преди. Ако действително обслужвате активи (като публично лого или API), предназначени за вграждане от другите сайтове, разработчикът ви може да използва по-разрешителна настройка за онези конкретни отговори. Тази, която наистина рискува счупване, е COEP — дръжте я изключена, освен ако не е тествана.
Какво реално ми струва 'hotlinking'?
Когато друг сайт вгради вашето изображение или скрипт директно от вашия сървър вместо да хоства собствено копие, всеки посетител на тяхна страница го изтегля от вас — от вашата сметка за честотна лента, и показвайки вашия актив в контекст, не одобрен от вас. За малък бизнес рядко е катастрофален, но са безплатни пари изхарчени, и CORP ('same-origin') го спира на нивото на браузъра. Той също затваря финна пътека за изтичане на данни, на която разчитат разширени (Spectre-клас) атаки на браузъра.
Как изглежда 'добро' за всяка от тях?
COOP: заглавка Cross-Origin-Opener-Policy, зададена на 'same-origin'. CORP: заглавка Cross-Origin-Resource-Policy, зададена на 'same-origin'. COEP: заглавка Cross-Origin-Embedder-Policy — и ако изобщо я задавате, 'credentialless' е по-безопасната стойност от 'require-corp'. Докладът ни просто отбелязва дали всяка е налице и на какво е зададена; никога не ви наказва за липсваща. Целете COOP и CORP да са налице; оставете COEP отсъстваща, освен ако не сте я тествали.