Pregunta El remitente se pasa de HTTPS a HTTP en algunos casos ... ¿Cómo?


En teoría, los navegadores no transmiten información de referencia de 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.

Busca "cuál es mi referente" en https://www.google.ca/
p.ej: https://www.google.ca/search?q=what+is+my+referer

Hay unos pocos sitios que mostrarán referencias. Todos parecen "trabajar" cuando no deberían. Por ejemplo, haga clic en el www.whatismyreferer.com. Yo obtengo:

 Your referer:
 https://www.google.ca/

Tenga en cuenta que a veces, rara vez, obtengo "no referer" como resultado. Vuelva atrás 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 de referencia no debe ser pasado, pero lo es.

¿Qué sucede aquí y cómo puedo hacer lo mismo desde mi sitio HTTPS a los sitios HTTP a los que me dirijo?


17
2017-07-02 16:23


origen


Debo tener en cuenta que estoy usando Chrome en Windows, si eso marca alguna diferencia (por ejemplo: si otras personas están viendo resultados diferentes en diferentes navegadores / sistemas operativos) - ravisorg
Este comportamiento ya no es cierto. - Flimm
@ravisorg, ¿No debería publicarse esto en S / O? - Pacerier


Respuestas:


Parece que se debe a una nueva <meta> encabezado que Google está utilizando:

 <meta name="referrer" content="origin">

Especificación: https://w3c.github.io/webappsec-referrer-policy/

Es actualmente solo totalmente compatible con algunos navegadores, así que no es una solución completa, pero ciertamente es un comienzo!


23
2017-07-03 17:02





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 de referencia en un (no seguro)    Solicitud HTTP si la página de referencia fue transferida con un seguro    protocolo.

así que si su cliente está haciendo eso, está violando el estándar.

nuevamente, Google es el estándar, y pueden hacer lo que quieran :-)


4
2017-07-02 17:08



"Debería" significa derecho opcional? - Pacerier
Sí, creo que sí, opcional. - johnshen64
Como es opcional, ¿por qué dice que está violando la norma? - Pacerier
Por ahora 2616 está obsoleto. 7231 Sección 5.5.2 dice "Un agente de usuario NO DEBE enviar un campo de encabezado de referencia 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


Esto parece ser algo que el javascript en la página de Google está haciendo. No lo veo en Firefox con Noscript habilitado y dejo de verlo en Chrome en Windows si deshabilito javascript. No sé qué específicamente porque no he cavado más profundo que eso.


1
2017-07-02 17:08



No, no está relacionado con javascript (pensé en eso y lo comprobé antes de preguntar). Parece que es una nueva etiqueta <meta> que Chrome está siguiendo. - ravisorg
Deshabilitar javascript de manera confiable impide 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


<meta>  El nombre del atributo de la etiqueta tiene nuevas reglas de referencia, Referente que controla el contenido del encabezado HTTP HTTP Referer adjunto a cualquier solicitud enviada desde este documento.

Para más información por favor marque aquí: Política de Referencias RFC


0
2018-03-24 15:00



¿Esto es lo mismo que la respuesta ya aceptada? - DocRoot


Se debe a que cuando hace clic en el enlace, se le redirige a https://www.google.... a http://www.google... entonces eres redirigido a www.whatismyreferer.com

Y como dijiste, entre el sitio web http se transmite el referer.

Puedes comprobarlo con un Extensión de Firefox


-2
2017-07-02 16:32



¿Estás adivinando, o estás basando eso en un hecho? Porque no veo que eso suceda en mi final. Al hacer clic en el enlace te envía a una redirección HTTPS en google.ca y luego al dominio final. Nunca accedo a una URL que no sea https hasta que llegue a (por ejemplo) www.whatismyreferer.com. También tenga en cuenta que el referido específicamente declara 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 eliminar los recursos descargados (como Google Suggest y otras cosas de Ajax) y datos relacionados con las cookies. Pero tengo que admitir que cuando lo intenté varias veces, Google se comportó de manera diferente ... A veces usé solo https, por lo tanto no permití que el sitio web me muestre mi referente. Solo intenta por ti mismo - user2299634