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.
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ênciahttps://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
:
<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>
:
<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:
<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 HTTPReferrer-Policy
na resposta da folha de estilo CSS. - Para elementos
<style>
ou atributosstyle
, 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
BCD tables only load in the browser
Nota:
- Da versão 53 em diante, Gecko possui uma preferência disponível em
about:config
para permitir usuários colocarem aReferrer-Policy
padrão —network.http.referer.userControlPolicy
. - Da versão 59 em diante (veja #587523), isso foi substituído por
network.http.referer.defaultPolicy
enetwork.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)