javascript - name - ¿Por qué no se retiró la referencia para Google HTTPS?-> HTTP
llamar javascript desde html (3)
Creo que es porque Google usa
<meta name="referrer" content="always">
Por lo tanto, cuando una persona pasa de HTTPS a un sitio HTTP, se conserva el referente. De lo contrario, sin esto el referente sería despojado.
Clients SHOULD NOT include a Referer header field in a (non-secure) HTTP request if the referring page was transferred with a secure protocol.
https://tools.ietf.org/html/rfc2616#section-15.1.3
De acuerdo con el estándar, https://google.com no debe enviar la referencia a sitios no seguros, pero lo hace. ¿Envían otros sitios HTTPS la referencia a sitios HTTP?
Todas estas pruebas se hacen usando Chrome v33.0.1750.117
Para ejecutar la prueba voy a la primera página, luego abro la consola y hago un redireccionamiento manualmente. location = "http://reddit.com";
Ex.
https://google.com -> http://www.reddit.com La referencia se mantiene
https://startpage.com/ -> http://www.reddit.com Se quitó la referencia
https://bankofamerica.com -> http://reddit.com Se quitó la referencia
https://facebook.com -> http://reddit.com La referencia se ha eliminado
¿Google está haciendo algo especial para mantener la referencia? ¿Hay una lista de sitios HTTPS que mantienen la referencia? ¿Hay algún otro caso donde se eliminó la referencia?
¡Gracias!
Cuando hace una Búsqueda de Google con Google Chrome, aparece la siguiente etiqueta en los resultados de búsqueda:
<meta content="origin" id="mref" name="referrer">
El valor de origin
significa que, en lugar de omitir por completo al Referer
al ir a http
desde https
, se debe proporcionar el nombre de dominio de origen, pero no la página exacta dentro del sitio (por ejemplo, las cadenas de búsqueda se mantendrán privadas).
Por otro lado, los agregadores de enlaces como las langostas tienen lo siguiente, lo que garantiza que la URL completa always
se proporcionará en el Referer
(por navegadores como Chrome y Safari), ya que las historias de enlaces son públicas de todos modos:
<meta name="referrer" content="always" />
A partir de mediados de 2014, este meta[@name="referrer"]
es solo una funcionalidad propuesta para HTML5, y no parece haberse implementado en Gecko, por ejemplo, solo se afirma que Chrome y Safari lo admiten. .
http://smerity.com/articles/2013/where_did_all_the_http_referrers_go.html
cnst responde esto correctamente arriba; es contenido = "origen". Eso obliga a los navegadores a usar HTTPS-> HTTPS y HTTPS-> HTTP para tener el encabezado de la solicitud:
http-referer=https://www.google.com
Esta funcionalidad permite que los sitios obtengan crédito por el tráfico sin tener que filtrar los parámetros de URL a un tercero. Es increíble, ya que es mucho menos hacky de lo que la gente ha usado aquí en el pasado.
Actualmente hay tres especificaciones que compiten para esto. No sé cuál es autoritario, y sospecho que es una mezcla. Son similares, en la mayoría de los puntos.
- http://www.w3.org/TR/referrer-policy/
- http://w3c.github.io/webappsec/specs/referrer-policy/
- https://wiki.whatwg.org/wiki/Meta_referrer
Aquí hay soporte disponible, que yo sepa; me encantaría que la gente me avise si me equivoco o me pierdo algo.
Ahora:
- Chrome 17+ es compatible con esto en el escritorio
- Chrome 25+ para dispositivos móviles
- Safari 6 en iPad y iPhone
Versión desconocida:
- Desktop Safari 7 es compatible con esto; posible compatibilidad en versiones anteriores, pero no tengo un navegador para confirmar.
Próximamente muy pronto ahora:
- IE12 Beta tiene soporte de trabajo (nuevo esta semana).
- Firefox 38 tiene el código registrado para una versión de mayo de 2015. https://bugzilla.mozilla.org/show_bug.cgi?id=704320