Em teoria, os navegadores não transmitem informações de referência dos sites HTTPS para HTTP. E, na minha experiência, isso sempre foi verdade. Mas acabei de encontrar uma exceção e quero entender por que funciona para que eu possa usá-la também.
Pesquise "qual é o meu referenciador" em https://www.google.ca/,
por exemplo: https://www.google.ca/search?q=what+is+my+referer
Existem alguns sites que mostrarão o referenciador. Todos eles parecem "funcionar" quando não deveriam. Por exemplo, clique no www.whatismyreferer.com. Eu recebo:
Your referer:
https://www.google.ca/
Observe que, às vezes, raramente, recebo "sem referência" como resultado. Volte e clique no link novamente e "funcionará" na próxima vez.
Isso não deveria acontecer. www.whatismyreferer.com não é um site HTTPS. O cabeçalho do referenciador não deve estar sendo passado, mas é.
O que está acontecendo aqui e como posso fazer o mesmo no meu site HTTPS nos sites HTTP aos quais estou vinculando?
fonte
Respostas:
Parece que é devido a um novo
<meta>
cabeçalho que o Google está usando:Especificação: https://w3c.github.io/webappsec-referrer-policy/
No momento, ele é totalmente compatível apenas com alguns navegadores ; portanto, não é uma solução completa, mas certamente um começo!
fonte
Esse é o comportamento padrão.
https://tools.ietf.org/html/rfc2616#section-15.1.3 diz
Os clientes não devem incluir um campo de cabeçalho de referência em uma solicitação HTTP (não segura) se a página de referência foi transferida com um protocolo seguro.
portanto, se seu cliente estiver fazendo isso, ele estará violando o padrão.
então, novamente, o google é o padrão, e eles podem fazer o que quiserem :-)
fonte
Parece ser algo que o javascript na página do google está fazendo. Não o vejo no firefox com o noscript ativado e paro de vê-lo no Chrome no Windows se eu desativar o javascript. Eu não sei o que especificamente, porque eu não cavei mais fundo do que isso.
fonte
<meta>
O nome do atributo do rótulo possui novas regras de referenciador, que controlam o conteúdo do cabeçalho HTTP do referenciador HTTP anexado a qualquer solicitação enviada a partir deste documento.Para mais informações, consulte aqui: Política de Referenciadores RFC
fonte
É porque, quando você clica no link, é redirecionado de https://www.google .... para http://www.google ... e depois é redirecionado para www.whatismyreferer.com
E como você disse, entre o site http o remetente é transmitido.
Você pode verificar isso com uma extensão do Firefox
fonte