Defaults.Exposed › Correções › Cabeçalhos de isolamento cross-origin (COOP / CORP / COEP)
Como corrigir Cabeçalhos de isolamento cross-origin (COOP / CORP / COEP)
Três instruções opcionais para o navegador que controlam como outros sites podem interagir com o seu — abri-lo em janelas pop-up, incorporar as suas imagens e scripts, ou puxar os seus recursos para as próprias páginas. São endurecimento moderno, não um requisito básico, e na nossa pontuação são informativos: a sua ausência não baixa a sua nota. Mas os dois que são seguros fecham uma falha discreta de phishing e de roubo de largura de banda, e a equipa de TI de um comprador cuidadoso reparará quando estiverem presentes.
O essencial para o seu negócio: Dois destes três cabeçalhos travam phishing sofisticado por pop-up e impedem outros sites de fazerem hotlinking das suas imagens e scripts (o que lhe custa largura de banda e pode expor dados). São gratuitos, ocupam um programador cerca de 15 minutos e não partem nada. O terceiro é avançado e pode partir análise de dados, fontes e incorporações — a maioria das empresas deve deixá-lo desligado. Nenhum deles afeta a sua nota, por isso trate-os como acabamento, não como pânico: faça os dois seguros, salte o arriscado a menos que precise mesmo dele.
Quanto isto lhe pode custar
- Um burlão abre o seu site real numa janela pop-up e mantém o controlo remoto sobre ela — redirecionando silenciosamente o seu cliente para um início de sessão falso no momento em que ele desvia o olhar. O cabeçalho seguro (COOP) corta esse elo de controlo por completo.
- Outros sites incorporam as suas fotos de produto, logótipos e scripts diretamente do seu servidor (hotlinking) — paga a largura de banda cada vez que os visitantes deles carregam a página, e os seus recursos aparecem em sites que nunca aprovaria.
- A equipa de segurança de um potencial cliente faz uma análise de cabeçalhos antes de assinar e vê que adicionou endurecimento cross-origin moderno — sinal pequeno, mas que o coloca na coluna dos «levam isto a sério» em vez da do «mínimo dos mínimos».
- Um programador, a tentar ser minucioso, liga o cabeçalho avançado de isolamento (COEP) sem testar — e parte o seu Google Analytics, as fontes web e o widget de marcações incorporado de um dia para o outro. Saber qual cabeçalho é seguro e qual é arriscado evita uma falha autoinfligida.
- A lista de verificação de um auditor menciona o isolamento cross-origin; prefere mostrar «presente e correto» nos dois seguros a explicar por que não há nada implementado.
Por que importa. Estes são cabeçalhos de endurecimento do navegador virados para o futuro. Na nossa metodologia, os três são informativos — estão registados com zero pontos e nunca movem a sua nota — porque são controlos avançados sem os quais um site pode legitimamente operar, e um deles pode causar dano se for mal aplicado. Reportamo-los para que veja onde está. Os dois seguros (COOP e CORP) valem genuinamente a pena adicionar: gratuitos, rápidos, e fecham falhas reais de phishing por pop-up e de roubo de recursos sem partir nada.
O que são estes, em palavras simples
Quando alguém visita o seu site, o navegador não carrega apenas as suas páginas isoladamente — também decide como outros sites podem interagir com o seu. Pode outro site abrir o seu numa pop-up e manter o controlo dela? Pode outro site alcançar e incorporar as suas imagens e scripts nas próprias páginas? Pode o seu próprio site usar com segurança certas funcionalidades de navegador poderosas e bloqueadas?
Estes três cabeçalhos são instruções curtas e invisíveis que o seu site envia ao navegador de cada visitante para responder exatamente a essas perguntas. São conhecidos pelas iniciais:
- COOP — Cross-Origin-Opener-Policy. Controla se outros sites que abrem o seu numa janela pop-up podem manter o controlo remoto sobre ela.
- CORP — Cross-Origin-Resource-Policy. Controla se outros sites podem incorporar as suas imagens, scripts e outros ficheiros nas próprias páginas.
- COEP — Cross-Origin-Embedder-Policy. Um controlo avançado que, combinado com o COOP, «isola» a sua página para que possa usar com segurança certas funcionalidades de navegador poderosas.
Dois deles (COOP e CORP) são seguros de adicionar e genuinamente úteis. O terceiro (COEP) é avançado e pode partir coisas se ligado sem cuidado.
O mais importante a saber à partida: na nossa pontuação, os três são informativos. Não afetam a sua nota. Um em falta não lhe custa nada. Reportamo-los para que veja onde está e arrume as vitórias fáceis — não para que entre em pânico por causa de um número.
O que isto lhe pode custar
São riscos de nicho, não os de primeira página — mas são reais, e as correções são gratuitas.
-
Phishing por pop-up que mantém o controlo remoto do seu site real. Sem o COOP, a página de um burlão pode abrir o seu site real numa janela pop-up e manter uma referência viva a ela. Enquanto a atenção do seu cliente está na página do burlão, o atacante pode redirecionar essa pop-up — o seu domínio real na barra de endereço — para um ecrã falso de início de sessão ou de pagamento no momento exato em que o cliente se vira para ela. O COOP definido como «same-origin» corta esse elo de controlo para que a pop-up não possa ser manipulada.
-
Outros sites a roubar a sua largura de banda (e a pôr os seus recursos onde não quer). Sem o CORP, qualquer site na internet pode incorporar as suas fotos de produto, logótipos, scripts e outros ficheiros diretamente do seu servidor — «hotlinking». Cada visitante da página deles descarrega o ficheiro de si, na sua conta de largura de banda, com o seu recurso a aparecer num contexto que nunca aprovou. O CORP definido como «same-origin» impede sites externos de incorporarem os seus recursos.
-
Um caminho discreto de fuga de dados para ataques de navegador avançados. A mesma incorporação cross-origin que permite o hotlinking é também um dos caminhos que ataques de navegador sofisticados, de canal lateral (a família Spectre), usam para ler dados que não deviam. O COOP e o CORP juntos fecham esse caminho ao nível do navegador. Para a maioria das pequenas empresas isto é à prova de bala, mas é à prova de bala gratuito.
-
Uma falha autoinfligida pelo cabeçalho errado. O avançado, o COEP, exige que cada recurso que o seu site carrega opte explicitamente por participar. Ligue-o sem testar e a sua análise de dados, fontes web, mapas incorporados, widgets de marcações e scripts de terceiros podem deixar todos de carregar — porque a nenhum foi pedido que optasse por participar. Esta é a única forma de estes cabeçalhos lhe poderem fazer mal, e é totalmente evitável: não ative o COEP sem testar.
-
Um sinal fácil perdido perante compradores cuidadosos. Quando a equipa de TI de um potencial cliente analisa os seus cabeçalhos antes de assinar, encontrar endurecimento cross-origin moderno implementado é um sinal pequeno mas real de «esta gente leva a segurança a sério». Não ganha um negócio por si só — mas é gratuito tê-lo do lado certo do livro-razão.
O que cada um é, na realidade
COOP — Cross-Origin-Opener-Policy (seguro, recomendado)
Quando outro site abre o seu usando uma pop-up ou window.open, as duas janelas podem normalmente manter uma referência uma à outra. Esse elo pode ser abusado: quem abriu pode manipular ou redirecionar a sua janela, ler fragmentos do seu URL e encenar phishing convincente usando o seu domínio real. O COOP: same-origin quebra essa relação — a sua janela fica isolada de tudo o que a abriu de outra origem. A navegação normal, as suas próprias ligações internas e a navegação comum não são de todo afetadas.
O que é «bom»: Cross-Origin-Opener-Policy: same-origin.
CORP — Cross-Origin-Resource-Policy (seguro, recomendado)
Por omissão, as suas imagens, scripts e outros ficheiros podem ser incorporados por qualquer site, em qualquer lado. O CORP: same-origin diz aos navegadores para recusarem a incorporação cross-origin dos seus recursos — para que outros sites não possam fazer hotlinking dos seus recursos nem puxá-los para as páginas deles. O seu próprio site continua a carregar os seus recursos exatamente como antes; só os sites externos são bloqueados.
O que é «bom»: Cross-Origin-Resource-Policy: same-origin. (Se publicar intencionalmente recursos para outros incorporarem — um logótipo público, uma API aberta — o seu programador pode relaxar isto nessas respostas específicas.)
COEP — Cross-Origin-Embedder-Policy (avançado, normalmente deixar desligado)
O COEP completa o «isolamento cross-origin»: combinado com o COOP, exige que cada recurso que a sua página carrega opte explicitamente por participar (via CORS ou CORP). Bem feito, isto desbloqueia certas funcionalidades de navegador poderosas (como o SharedArrayBuffer) e acrescenta outra camada contra ataques da classe Spectre. Mas, como exige a participação de tudo o que carrega, parte facilmente ferramentas de terceiros — análise de dados, fontes, widgets incorporados — que não foram construídas para participar. A maioria dos sites não precisa das funcionalidades que ele desbloqueia e não deve carregar o risco de quebra.
O que é «bom»: para o site raro que dele precisa, Cross-Origin-Embedder-Policy: credentialless — o valor mais seguro, com menor probabilidade de partir recursos externos do que o require-corp. Para todos os outros, ausente está bem, e o nosso relatório não o penalizará por isso.
Como corrigir (gratuito, ~15 minutos)
Entregue isto ao seu responsável de TI ou programador web — a correção é gratuita. Adicionar o COOP e o CORP são umas definições de uma linha no seu servidor ou CDN; não há licença nem custo contínuo. A única instrução para o proprietário é: faça os dois seguros e não ative o COEP sem testar.
São cabeçalhos de resposta, definidos onde as respostas do seu site são produzidas — o mais fácil é na sua CDN (p. ex. Cloudflare) se tiver uma, caso contrário na configuração do seu servidor web.
Os dois cabeçalhos seguros (recomendados para todos)
Cloudflare — Rules → Transform Rules → Modify Response Headers → Set:
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"
Estes são seguros de adicionar e não partem a funcionalidade normal. Depois de implementar, recarregue algumas páginas e confirme que o site se comporta exatamente como antes (deve).
O cabeçalho avançado (só se precisar mesmo dele)
Não o ligue sem testar primeiro em ambiente de teste. O COEP pode partir a análise de dados, as fontes e os widgets incorporados.
Cloudflare: Transform Rules → Set Cross-Origin-Embedder-Policy = credentialless.
Nginx:
add_header Cross-Origin-Embedder-Policy "credentialless" always;
Use credentialless em vez de require-corp — tem menor probabilidade de partir recursos externos. Teste exaustivamente em ambiente de teste; vigie qualquer script, fonte ou incorporação de terceiros que deixe de carregar. Se algo partir e não precisar mesmo das funcionalidades que o COEP desbloqueia, basta remover o cabeçalho — não há penalização por não o ter.
Notas por plataforma
- Google Workspace / Microsoft 365: estes alimentam o seu e-mail, não o seu site, por isso não há nada a definir aqui. Estes cabeçalhos pertencem ao que aloja o seu site (a sua CDN, alojamento ou servidor).
- Alojamentos geridos / construtores de sites comuns (Wix, Squarespace, Shopify, etc.): os cabeçalhos de resposta personalizados podem não ser configuráveis em planos mais baixos. Se não os conseguir adicionar, tudo bem — são informativos e não afetam a sua nota. Pôr o seu site por trás de uma CDN como a Cloudflare é a forma habitual de ganhar controlo sobre os cabeçalhos.
- WordPress no seu próprio alojamento: defina-os na configuração do seu servidor web (Nginx/Apache acima) ou via a sua CDN, e não num plugin sempre que possível — o nível de servidor/CDN é mais limpo e aplica-se a todas as respostas.
Erros comuns
- Ativar o COEP «para ser minucioso» e partir o site. Este é o grande. O COEP exige a participação de tudo o que carrega; ligue-o sem testar e a sua análise de dados, fontes e incorporações podem desaparecer. Se não precisa das funcionalidades de navegador que ele desbloqueia, não o defina.
- Tratá-los como urgentes porque um analisador os mencionou. São informativos. Os cabeçalhos web pontuados (HTTPS, HSTS, CSP, clickjacking, MIME-sniffing) vêm primeiro — corrija esses antes de gastar energia aqui.
- Definir o CORP demasiado restritivo quando publica mesmo recursos para incorporar. Se servir deliberadamente um logótipo, selo ou API para outros sites usarem, um CORP
same-origingeral bloqueia-os. Relaxe-o só nessas respostas em vez de abandonar o cabeçalho em todo o lado. - Adicionar o cabeçalho ao nível da página/aplicação e falhar algumas respostas. Defina-os ao nível do servidor ou da CDN para que se apliquem a todas as respostas (imagens, scripts, endpoints de API), não só às páginas HTML.
- Confundi-los com o cadeado SSL. O HTTPS cifra a ligação; estes controlam a interação entre sites. Não têm relação, e quer os dois.
Uma nota sobre a nota
Para ser completamente claro: nenhuma destas três verificações afeta a sua nota. Estão registadas na nossa metodologia como informativas, com zero pontos, e uma em falta nunca lhe custa nada. Trazemo-las à tona porque os dois seguros são melhorias baratas e genuínas e porque ver o quadro completo é útil — não porque haja um número a defender. Se não fizer nada aqui, a sua nota é exatamente a mesma. Se adicionar o COOP e o CORP, fechou um par de falhas reais (ainda que de nicho) de graça. É essa a forma certa de pensar nesta página: acabamento opcional, com uma armadilha claramente assinalada a evitar.
Perguntas frequentes
Estes não afetam a minha nota — devo dar-me ao trabalho?
Dois deles, sim; um, provavelmente não. O COOP e o CORP são gratuitos, demoram minutos e não partem o seu site — fecham caminhos de ataque reais (ainda que de nicho), por isso valem a pena como higiene barata. O COEP é avançado e pode partir ferramentas de terceiros, por isso a maioria das empresas deve deixá-lo desligado, a menos que precise mesmo das funcionalidades de navegador que ele desbloqueia. Nenhum dos três muda a sua pontuação, por isso não há urgência — trate os dois seguros como uma arrumação para a próxima vez que o programador estiver no site.
Não percebo de tecnologia — isto é algo que tenho de tratar?
Não pessoalmente, e não com urgência. Como são informativos, nada de mau acontece à sua nota se os saltar. Se quiser adicionar os dois seguros, entregue a secção «Como corrigir» a quem gere o seu site ou CDN — são umas definições de uma linha e a correção é gratuita. O único a sinalizar explicitamente é o COEP: diga-lhes para não o ligarem sem testar, porque pode partir a análise de dados e os widgets incorporados.
Qual é a diferença entre estes e os cabeçalhos que AFETAM a minha nota?
Os cabeçalhos de segurança web pontuados — redirecionamento para HTTPS, HSTS, Content-Security-Policy, proteção contra clickjacking (X-Frame-Options) e proteção contra MIME-sniffing — defendem contra ataques comuns e amplamente explorados, por isso a sua ausência custa pontos. Os três desta página (COOP, CORP, COEP) são controlos de isolamento de navegador mais recentes e especializados. São boa prática mas ainda não uma expectativa de base, por isso reportamo-los sem os pontuar. Faça primeiro os pontuados; estes são o acabamento por cima.
Adicionar COOP ou CORP vai partir o meu site ou as integrações dos meus parceiros?
As definições recomendadas (ambas «same-origin») são concebidas para serem seguras. O COOP só corta o elo às janelas que o seu site abre em pop-ups — a navegação normal, as suas próprias páginas e as ligações comuns não são afetadas. O CORP só impede *outros* sites de incorporarem as suas imagens e scripts; o seu próprio site carrega os seus recursos exatamente como antes. Se realmente servir recursos (como um logótipo público ou uma API) que outros sites devam incorporar, o seu programador pode usar uma definição mais permissiva nessas respostas específicas. O que arrisca mesmo quebras é o COEP — mantenha esse desligado a menos que testado.
Quanto me custa, na verdade, o «hotlinking»?
Quando outro site incorpora a sua imagem ou script diretamente do seu servidor em vez de alojar a própria cópia, cada visitante da página dele descarrega-a de si — na sua conta de largura de banda, e a mostrar o seu recurso num contexto que não aprovou. Para uma pequena empresa raramente é catastrófico, mas é dinheiro a sair pela porta, e o CORP («same-origin») trava-o ao nível do navegador. Também fecha um caminho subtil de fuga de dados de que dependem ataques de navegador avançados (da classe Spectre).
O que é «bom» para cada um destes?
COOP: um cabeçalho Cross-Origin-Opener-Policy definido como «same-origin». CORP: um cabeçalho Cross-Origin-Resource-Policy definido como «same-origin». COEP: um cabeçalho Cross-Origin-Embedder-Policy — e, se o definir de todo, «credentialless» é o valor mais seguro do que «require-corp». O nosso relatório limita-se a registar se cada um está presente e como está definido; nunca o penaliza por um em falta. Procure ter COOP e CORP presentes; deixe o COEP ausente a menos que o tenha testado.