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?


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


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.


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


¡¿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


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.