Defaults.Exposed

Defaults.ExposedCorreções › Referrer-Policy

Como corrigir Referrer-Policy

Uma Referrer-Policy é uma instrução de uma linha que o seu site entrega ao navegador de cada visitante, controlando quanto do seu endereço web viaja com ele quando clica numa ligação para outro site. Sem ela, o endereço completo da página onde estava — termos de pesquisa, números de conta, ligações de reposição, caminhos internos e tudo — é entregue discretamente ao próximo site onde aterra, incluindo anunciantes, empresas de análise de dados e qualquer outro destino para onde uma ligação aponte.

O essencial para o seu negócio: Sempre que um visitante clica numa ligação externa, num anúncio ou num recurso partilhado, o navegador pode entregar ao destino o endereço completo da sua página — e se os seus endereços carregam pesquisas, IDs de cliente, números de encomenda ou ligações de uso único, está a expor dados de clientes a terceiros que não controla. Isso é um problema de proteção de dados que os reguladores levam a sério, uma promessa de privacidade discretamente quebrada e uma falha pontuada que a equipa de segurança de um cliente assinalará durante a sua diligência.

Quanto isto lhe pode custar

Por que importa. Os navegadores, entregues a si próprios, são faladores: por omissão, dizem ao próximo site de onde o visitante acabou de vir, muitas vezes incluindo o endereço completo da página. Para um site de brochura isso pode ser inofensivo, mas no momento em que os seus endereços contêm algo pessoal — um termo de pesquisa, um ID de encomenda, um e-mail numa ligação, um caminho privado — esse comportamento por omissão expõe-no discretamente a terceiros. Uma Referrer-Policy é a única definição que diz aos navegadores para pararem de partilhar a mais. É uma verificação pontuada no seu boletim que vale pontos a sério, mapeia diretamente para deveres de minimização de dados ao abrigo da lei de privacidade e é um dos cabeçalhos de segurança padrão que qualquer revisão profissional espera encontrar.

O que é isto, em palavras simples

Sempre que um visitante no seu site clica numa ligação para outro site — uma ligação externa, um banner publicitário, um «partilhar isto», até uma fonte ou imagem carregada de outro lado — o navegador anexa discretamente uma nota a dizer de que página sua ele veio. Essa nota chama-se referrer.

Usado com sensatez, o referrer é inofensivo e até útil: é assim que outros sites sabem que o tráfego veio de si, e alimenta muita análise de dados honesta. O senão está no comportamento por omissão. Sem gestão, o navegador não diz apenas «vieram de a-sua-empresa.com» — costuma entregar o endereço completo da página exata, incluindo tudo o que vem depois do nome do domínio. E os endereços web carregam muito mais do que as pessoas julgam: termos de pesquisa escritos no seu site, números de encomenda e de conta, o caminho para uma página privada só de membros, até tokens secretos de uso único em ligações de reposição de palavra-passe e de confirmação.

Uma Referrer-Policy é uma única instrução que o seu site envia ao navegador a dizer quanto dessa nota está autorizado a partilhar. Pode dizer-lhe para partilhar só o nome do seu domínio, só para outras páginas do seu próprio site, ou nada de todo. Pense nela como a diferença entre entregar a um estranho a sua morada completa com a sua agenda diária anexada, e simplesmente dizer-lhe em que cidade vive.

Este é um de uma pequena família de «cabeçalhos de segurança» — instruções curtas que o seu site dá ao navegador de cada visitante. Não muda o aspeto nem o funcionamento do seu site. Simplesmente impede o navegador de partilhar a mais em seu nome.

O que isto lhe pode custar

Eis formas concretas e do dia a dia em que uma Referrer-Policy em falta ou permissiva morde empresas reais. Nenhuma destas exige um hacker — acontecem automaticamente, todos os dias, em uso normal.

O que isto é, na realidade

Por omissão, os navegadores seguem um comportamento aproximadamente equivalente a «strict-origin-when-cross-origin» nas versões modernas — mas não pode confiar nisso, porque navegadores mais antigos, webviews incorporadas e certas configurações ainda recaem em expor mais. A única forma de ter a certeza é definir a política explicitamente. Ao fazê-lo, está a escolher uma regra de uma lista curta. As que importam:

E os dois valores a evitar, porque o boletim os trata como nada melhor do que não ter cabeçalho nenhum:

O que é «bom»: um cabeçalho Referrer-Policy presente e definido com um valor restritivo — para a maioria das empresas, strict-origin-when-cross-origin. Isto mantém a análise de referências a funcionar enquanto garante que nada para além do nome do seu domínio chega a um site externo.

Como corrigir (gratuito, cerca de 5 minutos)

Entregue esta secção ao seu responsável de TI, programador web ou apoio de alojamento — a correção é gratuita, é uma única linha e não parte o seu site. Não há aqui um lançamento arriscado: ao contrário de algumas definições de segurança, uma Referrer-Policy sensata não pode impedir as suas ligações ou páginas de funcionar. Só encurta o que é partilhado com outros sites.

O objetivo: definir um cabeçalho de resposta Referrer-Policy com o valor strict-origin-when-cross-origin (ou um valor mais restritivo, se preferir partilhar ainda menos).

Cloudflare (sem código — o mais fácil, se a usar): Dashboard → o seu domínio → Rules → Transform Rules → Modify Response Header → Create rule → Set static → nome do cabeçalho Referrer-Policy, valor strict-origin-when-cross-origin → aplicar a todos os pedidos → Deploy.

Google Workspace / Microsoft 365: estes gerem o seu e-mail, não o seu site, por isso o cabeçalho define-se onde o seu site está realmente alojado (o seu fornecedor de alojamento, CDN ou servidor) — não na administração do Workspace ou do 365. Identifique o alojamento e use a opção correspondente abaixo.

Nginx:

add_header Referrer-Policy "strict-origin-when-cross-origin" always;

Apache (na configuração do site ou no .htaccess):

Header always set Referrer-Policy "strict-origin-when-cross-origin"

IIS (web.config):

<httpProtocol><customHeaders>
  <add name="Referrer-Policy" value="strict-origin-when-cross-origin" />
</customHeaders></httpProtocol>

Node / Express:

app.use((req, res, next) => { res.setHeader('Referrer-Policy', 'strict-origin-when-cross-origin'); next(); });

WordPress / alojamentos comuns: a maioria dos WordPress geridos e dos alojamentos partilhados deixam-no adicionar cabeçalhos de resposta através de um plugin de segurança, de um painel de «cabeçalhos» no painel de controlo do alojamento, ou do trecho .htaccess acima. Se estiver por trás da Cloudflare, o método da Cloudflare é o mais limpo e aplica-se em todo o lado de uma vez.

Depois de aplicar: abra o seu site e volte a correr a verificação, ou use as ferramentas de programador do navegador (separador Network → clicar no documento principal → Response Headers) para confirmar que Referrer-Policy: strict-origin-when-cross-origin está presente.

Erros comuns

Uma nota rápida sobre os cabeçalhos relacionados

A Referrer-Policy fica ao lado de um pequeno conjunto de outros cabeçalhos de segurança web que verificamos — Content-Security-Policy, X-Frame-Options, X-Content-Type-Options e alguns cabeçalhos avançados de cross-origin. Protegem coisas diferentes, por isso ter um não cobre os outros. Se a sua Referrer-Policy está em falta, vale a pena pedir a quem a corrige que confirme, ao mesmo tempo, que os outros cabeçalhos padrão estão implementados, já que são habitualmente configurados no mesmo único sítio e a visita não custa nada extra.

Em resumo

A Referrer-Policy é a correção de privacidade mais barata e segura do seu boletim: uma linha, cerca de cinco minutos, sem risco de partir nada, e gratuita. Impede que os navegadores dos seus visitantes entreguem discretamente os seus endereços de página privados — e quaisquer dados pessoais que contenham — a cada site externo a que acedem. Defina-a como strict-origin-when-cross-origin, confirme que está ativa em todas as páginas, e a falha de severidade média e os seus 15 pontos ficam fechados.

Perguntas frequentes

Não percebo de tecnologia — isto é algo de que consigo tratar?

Sim, e é uma das correções mais fáceis de todo o boletim. É uma única linha acrescentada por quem gere o seu site ou alojamento, e em serviços como a Cloudflare são uns cliques sem qualquer código. Entregue-lhe a secção «Como corrigir» mais abaixo. É gratuita, demora cerca de cinco minutos e, ao contrário de algumas definições de segurança, não parte nada no seu site.

O que significa «referrer», afinal?

Quando alguém clica numa ligação da sua página para outro site, o navegador envia junto uma nota a dizer de que página veio — essa nota chama-se referrer. É genuinamente útil para análise de dados honesta. O problema é que, por omissão, a nota costuma incluir o endereço completo da sua página, não só o nome do domínio. Se esse endereço contiver algo privado, também é partilhado. Uma Referrer-Policy permite-lhe encurtar a nota apenas ao seu domínio, ou desligá-la, para que nada de sensível escape.

Vale mesmo a pena se o meu site não processa pagamentos?

Quase de certeza que sim. Não precisa de um checkout para ter informação privada nos seus endereços web — caixas de pesquisa, formulários de contacto, páginas de conta, ligações de documentos e e-mails de reposição de palavra-passe põem todos, rotineiramente, dados na barra de endereço. E mesmo sem qualquer dado pessoal, expor os seus caminhos internos a cada site externo a que os visitantes acedem entrega a concorrentes e scrapers um mapa gratuito do seu site. A correção não custa nada e cinco minutos, por isso há pouca razão para a saltar.

Ligar isto pode partir o meu site ou a minha análise de dados?

Não. Este é um dos cabeçalhos seguros — só controla quanto detalhe do endereço é partilhado com outros sites, não se as ligações funcionam. A definição recomendada continua a enviar o nome do seu domínio a sites externos, por isso a análise legítima de referências continua a funcionar; só impede que o endereço privado completo vá junto. Não é preciso um período de só-observação nem testes prévios em ambiente de teste.

Isto é uma questão de lei de privacidade ou só um extra simpático?

Pode ser uma questão genuína de conformidade. As regras de proteção de dados exigem que recolha e partilhe apenas o mínimo de dados pessoais necessário e que saiba para onde vão os seus dados. Se os seus endereços carregam identificadores pessoais e os expõe a anunciantes ou empresas de análise de dados sem acordo, isso é uma falha de minimização de dados que auditores e reguladores reconhecem. Para a maioria das empresas, este cabeçalho é uma forma barata e concreta de fechar essa falha.

Isto afeta a nossa nota, ou é só conselho?

Afeta a sua nota. A verificação Referrer-Policy é pontuada e vale até 15 pontos na categoria Segurança Web. Um cabeçalho em falta é marcado com severidade média. Atenção a uma armadilha: definir o cabeçalho com um valor permissivo como «unsafe-url» ou «no-referrer-when-downgrade» pontua zero — o mesmo que não ter cabeçalho nenhum — porque esses valores continuam a expor o endereço completo. Para ganhar os pontos precisa de um valor devidamente restritivo, como «strict-origin-when-cross-origin».