Referer se pasa de HTTPS a HTTP en algunos casos ... ¿Cómo?

17

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?

ravisorg
fuente
1
Debo señalar que estoy usando Chrome en Windows, si eso hace alguna diferencia (por ejemplo: si otras personas están viendo resultados diferentes en diferentes navegadores / SO)
ravisorg
Este comportamiento ya no es cierto.
Flimm
@ravisorg, ¿no debería publicarse esto en S / O?
Pacerier
Google ahora devuelve un enlace HTTPS, por lo que la prueba ya no es válida :-(
Silas S. Brown

Respuestas:

4

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 :-)

johnshen64
fuente
1
"Debería" significa derecho opcional?
Pacerier
Sí, creo que sí, opcional.
johnshen64
44
Como es opcional, ¿por qué dice que está violando el estándar?
Pacerier
1
Por ahora 2616 es obsoleto. 7231 La Sección 5.5.2 dice "Un agente de usuario NO DEBE enviar un campo de encabezado Referer en una solicitud HTTP no segura si la página de referencia se recibió con un protocolo seguro". Sin embargo, no especifica qué agentes deben hacer para las solicitudes HTTP seguras.
Peter
1

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.

Etan Reisner
fuente
No, no está relacionado con JavaScript (pensé en eso y lo revisé antes de preguntar). Parece que es una nueva etiqueta <meta> que Chrome está siguiendo.
ravisorg
Deshabilitar JavaScript de manera confiable evita que el referente trabaje aquí. No lo sé. Tal vez más de una cosa está involucrada aquí.
Etan Reisner
Eso es muy interesante, voy a experimentar más con eso. ¡Gracias por la respuesta!
ravisorg
0

<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

leozhang2018
fuente
¡¿Esto es lo mismo que la respuesta ya aceptada ?!
DocRoot
-2

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

usuario2299634
fuente
2
¿Estás adivinando o lo estás basando en hechos? Porque no veo que eso suceda de mi parte. Al hacer clic en el enlace, se lo envía a una redirección HTTPS en google.ca y luego al dominio final. Nunca llego a una URL que no sea https hasta que llegue a (por ejemplo) www.whatismyreferer.com. También tenga en cuenta que el árbitro especifica específicamente httpS://www.google.ca , no http.
ravisorg
Sí, esta respuesta parece ser incorrecta.
ceejayoz
Aquí está el volcado de los encabezados http: pastebin.com/Y1HJyJ87 Acabo de quitar la descarga de recursos (como google sugiere y otras cosas de ajax) y los datos relacionados con las cookies. Pero tengo que admitir que cuando lo intenté varias veces, google se comportó de manera diferente ... A veces solo usaba https, por lo tanto no permitía que el sitio web me mostrara mi referente. Solo inténtalo tú mismo
user2299634