Defaults.Exposed

Defaults.ExposedПоправки › Заглавки за cross-origin изолация (COOP / CORP / COEP)

Как да поправите Заглавки за cross-origin изолация (COOP / CORP / COEP)

Три незадължителни инструкции за браузъра, контролиращи как другите уебсайтове имат право да взаимодействат с вашия — отварянето му в изскачащи прозорци, вграждането на неговите изображения и скриптове или изтеглянето на ресурсите му в собствените им страници. Те са съвременно втвърдяване, а не основна задължителна функция, и в нашата оценка са информационни: липсата им не намалява оценката ви. Но двете безопасни затварят тиха пропаст за фишинг с изскачащи прозорци и кражба на честотна лента, и внимателният IT екип на купувача ще забележи когато са налице.

Заключение за вашия бизнес: Две от тези три заглавки спират сложен фишинг с изскачащи прозорци и предотвратяват hotlinking на вашите изображения и скриптове от другите сайтове (което ви струва честотна лента и може да изтича данни). Безплатни са, отнемат около 15 минути за разработчик и няма да счупят нищо. Третата е разширена и може да счупи анализи, шрифтове и вградени елементи — повечето бизнеси трябва да я оставят изключена. Нито една от тях не засяга оценката ви, така че третирайте ги като лак, а не паника: правете двете безопасни, пропускайте рисковата, освен ако не ви трябва специално.

Какво може да ви струва това

Защо има значение. Това са ориентирани към бъдещето заглавки за втвърдяване на браузъра. В нашата методология и трите са информационни — регистрирани са с нула точки и никога не движат оценката ви — защото са разширени контроли, без които сайтът може легитимно да работи, и един от тях може да навреди при неправилно прилагане. Докладваме за тях, за да виждате позицията си. Двете безопасни (COOP и CORP) наистина си заслужава да се добавят: безплатни, бързи и затварят реални пропасти за фишинг с изскачащи прозорци и кражба на ресурси без счупване на нищо.

Какво са тези, с прости думи

Когато някой посещава вашия уебсайт, браузърът им не само зарежда страниците ви в изолация — той също решава как другите уебсайтове имат право да взаимодействат с вашия. Може ли друг сайт да отвори вашия в изскачащ прозорец и да го задържи? Може ли друг сайт да достигне и да вгради вашите изображения и скриптове в собствените си страници? Може ли вашият собствен сайт безопасно да използва определени мощни, заключени функции на браузъра?

Тези три заглавки са кратки, невидими инструкции, изпращани от вашия уебсайт до браузъра на всеки посетител, за да отговорят точно на онези въпроси. Известни са с инициалите си:

Две от тях (COOP и CORP) са безопасни за добавяне и наистина полезни. Третата (COEP) е разширена и може да счупи неща при небрежно включване.

Най-важното за знаене предварително: в нашата оценка и трите са информационни. Те не засягат оценката ви. Липсваща не ви струва нищо. Докладваме за тях, за да виждате позицията си и да почистите лесните победи — а не за да се паникьосвате от число.

Какво може да ви струва това

Това са нишови рискове, а не заглавни — но са реални и поправките са безплатни.

Какво всъщност е всяко

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 → Задайте:

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, просто премахнете заглавката — не е наказание за нямане на нея.

Бележки за платформи

Чести грешки

Бележка за оценката

За да бъде напълно ясно: нито една от тези три проверки не засяга оценката ви. Регистрирани са в нашата методология като информационни, с нула точки, и липсваща никога не ви струва нищо. Ние ги извеждаме, защото двете безопасни са евтини, реални подобрения и защото пълната картина е полезна — не защото има число за защитаване. Ако не правите нищо тук, оценката ви е абсолютно същата. Ако добавите 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 отсъстваща, освен ако не сте я тествали.