Referrer-Policy

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021.

* Some parts of this feature may have varying levels of support.

O cabeçalho HTTP Referrer-Policy controla quanta informação de referência (enviado pelo cabeçalho Referer) deve ser incluída nas requisições.

Tipo de cabeçalho Response header
Forbidden header name não

Sintaxe

Nota: O nome original do cabeçalho Referer é um erro ortográfico da palavra "referrer". O cabeçalho Referrer-Policy não compartilha do mesmo erro ortográfico.

Referrer-Policy: no-referrer
Referrer-Policy: no-referrer-when-downgrade
Referrer-Policy: origin
Referrer-Policy: origin-when-cross-origin
Referrer-Policy: same-origin
Referrer-Policy: strict-origin
Referrer-Policy: strict-origin-when-cross-origin
Referrer-Policy: unsafe-url

Diretivas

no-referrer

O cabeçalho Referer será omitido completamente. Nenhuma informação de referência será enviada junto com as requisições.

no-referrer-when-downgrade (padrão)

Este é o comportamento padrão quando nenhuma política é especificada, ou se o valor provido é inválido. A origem, caminho e cadeia de consulta (origin, path, and querystring) da URL são enviadas como referência quando os níveis de protocolo de segurança continuam os mesmos (HTTP→HTTP, HTTPS→HTTPS) ou melhora (HTTP→HTTPS), mas não é enviado para destinos menos seguros (HTTPS→HTTP).

Nota: Existe um esforço dos navegadores em mover para um valor padrão mais estrito, chamado de strict-origin-when-cross-origin (veja https://github.com/whatwg/fetch/pull/952), considere usar este valor (ou um mais estrito), se possível, quando trocando a Referrer-Policy.

origin

Somente envia a origem (origin) do documento como referência. Por exemplo, um documento em https://example.com/page.html irá mandar a referência https://example.com/.

origin-when-cross-origin

Envia a origem, caminho e cadeia de consulta quando performando uma requisição same-origin, mas somente envia a origem do documento em outros casos.

same-origin

A referência será enviada para origens do mesmo site, mas requisições entre origens não enviarão informação de referência.

strict-origin

Envia somente a origem do documento como referência quando o nível de protocolo de segurança se mantém o mesmo (HTTPS→HTTPS), mas não o envia para um destinatário menos seguro (HTTPS→HTTP).

strict-origin-when-cross-origin

Envia a origem, caminho e cadeia de consulta quando performando uma requisição de mesma origem, somente envia a origem quando o nível do protocolo de segurança se mantém o mesmo durante uma requisição entre origens (HTTPS→HTTPS), e envia nenhum cabeçalho para destinatários menos seguros (HTTPS→HTTP).

unsafe-url

Envia a origem, o caminho e a cadeia de consulta quando performando qualquer requisição, independente da segurança.

Aviso: Esta política irá vazar informações potencialmente privadas da URL HTTPS do recurso para origens inseguras. Considere o impacto desta configuração com cuidado.

Integração com HTML

Você também pode colocar política de referência dentro do HTML. Por exemplo, você pode colocar uma política de referência para o documento inteiro com um elemento <meta> com um nome de referrer:

html
<meta name="referrer" content="origin" />

Ou colocar ele para requisições individuais com o atributo referrerpolicy nos elementos <a>, <area>, <img>, <iframe>, <script>, or <link>:

html
<a href="http://example.com" referrerpolicy="origin"></a>

Alternativamente, uma relação de link noreferrer em um elemento a, area, ou link pode ser colocada:

html
<a href="http://example.com" rel="noreferrer"></a>

Integração com CSS

CSS pode buscar recursos referênciados de suas folhas de estilo. Estes recursos seguem a política de referência também como:

  • Folhas de estilo CSS externas usam a política padrão (no-referrer-when-downgrade), a não ser que seja sobrescrita por um cabeçalho HTTP Referrer-Policy na resposta da folha de estilo CSS.
  • Para elementos <style> ou atributos style, a política de referência do dono do documento é utilizada.

Exemplos

Política Documento Navegar para Referência
no-referrer https://example.com/page qualquer lugar (sem referência)
no-referrer-when-downgrade https://example.com/page https://example.com/otherpage https://example.com/page
https://mozilla.org https://example.com/page
http://example.org (sem referência)
origin https://example.com/page qualquer lugar https://example.com/
origin-when-cross-origin https://example.com/page https://example.com/otherpage https://example.com/page
https://mozilla.org https://example.com/
http://example.com/page https://example.com/
same-origin https://example.com/page https://example.com/otherpage https://example.com/page
https://mozilla.org (sem referência)
strict-origin https://example.com/page https://mozilla.org https://example.com/
http://example.org (sem referência)
http://example.com/page qualquer lugar http://example.com/
strict-origin-when-cross-origin https://example.com/page https://example.com/otherpage https://example.com/page
https://mozilla.org https://example.com/
http://example.org (sem referência)
unsafe-url https://example.com/page?q=123 qualquer lugar https://example.com/page?q=123

Especificando uma política de recuo (fallback)

Se você quer especificar uma política de recuo em qualquer caso que a política desejada não tenha um grande suporte do navegador, use uma lista separada por vírgulas com a política desejada especificada por último:

Referrer-Policy: no-referrer, strict-origin-when-cross-origin

No cenário acima, no-referrer só será usada se strict-origin-when-cross-origin não for suportada pelo navegador.

Nota: Especificar múltiplos valores só é suportado no cabeçalho HTTP Referrer-Policy, e não no atributo referrerpolicy.

Especificações

Especificação Status
Referrer Policy Rascunho do editor

Compatibilidade com navegadores

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Referrer-Policy
Default policy is strict-origin-when-cross-origin
no-referrer-when-downgrade
origin-when-cross-origin
same-origin
strict-origin
strict-origin-when-cross-origin
unsafe-url

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Nota:

  • Da versão 53 em diante, Gecko possui uma preferência disponível em about:config para permitir usuários colocarem a Referrer-Policy padrão — network.http.referer.userControlPolicy.
  • Da versão 59 em diante (veja #587523), isso foi substituído por network.http.referer.defaultPolicy e network.http.referer.defaultPolicy.pbmode.Valores possíveis são:- 0 — no-referrer
  • 1 — same-origin
  • 2 — strict-origin-when-cross-origin
  • 3 — no-referrer-when-downgrade (o padrão)

Veja também