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 janeiro de 2020.
* 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
Refererserá 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.htmlirá 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-Policyna 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
Loading…
Nota:
- Da versão 53 em diante, Gecko possui uma preferência disponível em
about:configpara permitir usuários colocarem aReferrer-Policypadrão —network.http.referer.userControlPolicy. - Da versão 59 em diante (veja #587523), isso foi substituído por
network.http.referer.defaultPolicyenetwork.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)