En teoría, los navegadores no transmiten información de referencia desde HTTPS a sitios HTTP. Y en mi experiencia esto siempre ha sido cierto. Pero acabo de encontrar una excepción, y quiero entender por qué funciona para poder usarla también.
Busque "cuál es mi referente" en https://www.google.ca/
por ejemplo: https://www.google.ca/search?q=what+is+my+referer
Hay algunos sitios que mostrarán el árbitro. Todos parecen "trabajar" cuando no deberían. Por ejemplo, haga clic en www.whatismyreferer.com. Yo obtengo:
Your referer:
https://www.google.ca/
Tenga en cuenta que a veces, rara vez, obtengo "sin referencia" como resultado. Regrese y haga clic en el enlace nuevamente y "funcionará" la próxima vez.
Esto no debería suceder. www.whatismyreferer.com es un sitio que no es HTTPS. El encabezado del árbitro no se debe pasar, pero lo es.
¿Qué está pasando aquí y cómo puedo hacer lo mismo desde mi sitio HTTPS a los sitios HTTP a los que me estoy vinculando?
fuente
Respuestas:
Parece que se debe a un nuevo
<meta>
encabezado que Google está usando:Especificación: https://w3c.github.io/webappsec-referrer-policy/
Actualmente solo es totalmente compatible con unos pocos navegadores , por lo que no es una solución completa, ¡pero ciertamente es un comienzo!
fuente
Este es el comportamiento estándar.
https://tools.ietf.org/html/rfc2616#section-15.1.3 dice
Los clientes NO DEBEN incluir un campo de encabezado Referer en una solicitud HTTP (no segura) si la página de referencia se transfirió con un protocolo seguro.
así que si su cliente está haciendo eso, está violando el estándar.
por otra parte, google ES el estándar, y pueden hacer lo que quieran :-)
fuente
Esto parece ser algo que está haciendo el javascript en la página de google. No lo veo en Firefox con noscript habilitado y dejo de verlo en Chrome en Windows si desactivo JavaScript. No sé qué específicamente, ya que no he cavado más profundo que eso.
fuente
<meta>
El nombre del atributo de la etiqueta tiene nuevas reglas de referencia. La referencia controla el contenido del encabezado HTTP Referer HTTP adjunto a cualquier solicitud enviada desde este documento.Para obtener más información, consulte aquí: Política de referencia RFC
fuente
Es porque cuando hace clic en el enlace, se lo redirige desde https://www.google .... a http://www.google ... luego se lo redirige a www.whatismyreferer.com
Y como dijiste, entre el sitio web http se transmite el árbitro.
Puede verificar eso con una extensión de Firefox
fuente