Mi sitio web es 100% https. Tengo enlaces a otros dominios http. El encabezado de referencia no se establece cuando se vincula desde una página https a una página http. De http://en.wikipedia.org/wiki/HTTP_referrer
Si se accede a un sitio web desde una conexión HTTP Secure (HTTPS) y un enlace apunta a cualquier lugar excepto a otra ubicación segura, no se envía el campo de referencia.
Preferiría que otros dominios puedan ver el referente para que sepan que el tráfico proviene de mi dominio. ¿Hay alguna manera de forzar este encabezado o hay otra solución?
Actualizar
He realizado algunas pruebas básicas utilizando una redirección:
http page -- link to http --> 301 redirect --> http page = referrer intact
https page -- link to https --> 301 redirect --> http page = referrer blank
https page -- link to http --> 301 redirect --> http page = referrer blank
https page -- link to http --> 302 redirect --> http page = referrer blank
El referente se pierde cuando se vincula desde una página https a una página de redireccionamiento http en mi propio dominio. Por lo tanto, no hay referencia en la redirección.
Origin
debe estar intacto, aunque puede no ajustarse a su caso de uso.Respuestas:
Como se mencionó en esta respuesta, hay un nuevo método para hacerlo: Política de referencia / metaetiqueta.
Consulte las especificaciones y el ejemplo en esta pregunta y respuesta .
fuente
También tuve este mismo problema. Resuelvo agregando metaetiquetas como a continuación y funcionará solo en Chrome y Safari.
fuente
Lamentablemente, no puede hacer referencia en HTTPS a sitios que utilizan HTTP. Sin embargo, puede hacer HTTPS a HTTPS o HTTP a HTTPS.
Una solución sería utilizar un script de redireccionamiento interno que, en lugar de dirigir la vinculación al visitante en el HTTPS, redirija a HTTP y luego redirija.
Por ejemplo:
<a href="http://www.yours.com/out.php?www.other.com">www.outboundsite.com</a>
pero esto no usaría el referente original.Otra posibilidad es usar trackbacks en lugar de referencias y, hasta donde yo sé, esto funciona en HTTPS.
fuente
Pude configurar un enlace desde una página HTTPS a una página HTTP en otro dominio y aún pasar la URL de la primera página como referencia usando la siguiente técnica.
Definiciones
Página de origen : página HTTPS donde se encuentra el enlace a la página de destino alojada HTTP. En este ejemplo:
https://example1.com/origin.html
Página de destino : página HTTP que tiene acceso al referente de la página de origen. En este ejemplo:
http://example2.com/destination.html
Plan basico
Esto tiene el efecto de hacer que la redirección provenga de la versión HTTP de la página de origen:
El enlace en la página de origen HTTPS enlaza con la página actual pero agrega un parámetro de consulta para la página de destino [1]. p.ej:
https://example1.com/origin.html?goto=http://example2.com/destination.html
Cuando se hace clic en el enlace, el servidor de example1.com interrumpe la solicitud estándar cuando el parámetro de consulta 'goto' está presente. Entonces:
http://example1.com/origin.html
El servidor verifica cada solicitud de una cookie 'goto' y, si está presente, borrará la cookie y luego mostrará una página de redireccionamiento muy simple. Esta página contiene [2]:
Notas
[1] Esta solución básica es un redireccionador abierto y se debe considerar la posibilidad de protegerse contra los malos usando el parámetro goto query para redirigir los UA en ataques de phishing.
[2] No todos los navegadores enviarán el referente al redirigir mediante una etiqueta de redireccionamiento JS o meta refresco. En mis pruebas, IE8 y versiones inferiores no pasan el referente.
No estoy seguro de si esta técnica permitirá a los rastreadores de motores de búsqueda seguir los enlaces. Esto no es importante para mis requisitos.
Si el UA tiene las cookies deshabilitadas, esto solo redirigirá a la página de origen nuevamente.
Permitir conexiones HTTP solo para redireccionamientos
En mi servidor tengo una regla de Apache para aplicar HTTPS independientemente de la solicitud:
Para que la técnica de redireccionamiento anterior funcione, necesito alguna forma de permitir condicionalmente las conexiones HTTP. Hay muchas maneras de hacer esto. Decidí que una cookie funcionará.
La cookie disable_ssl se establecería en el paso 2 y luego se eliminaría en el paso 3.
fuente
de acuerdo con el protocolo HTTP 1.1 http://www.w3.org/Protocols/rfc2616/rfc2616-sec15.html#sec15.1.3
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 seguro
fuente
Parece que lo que quieres no es posible, por lo que es posible una solución alternativa; si el sitio objetivo está utilizando Google Analytics (o un programa compatible, creo que Piwik usa una sintaxis similar, y otros paquetes de estadísticas serían tontos si ignora esto) puede enviar los parámetros de seguimiento, por ejemplo, en su enlace a example.com
esto aparecerá en su GA con los detalles, asegúrese de elegir valores que es poco probable que alguien más use para que no los fuerce a conflictos / u oculte su tráfico detrás de otra persona
Google haga un útil creador de URL aquí http://support.google.com/analytics/answer/1033867?hl=en
Actualización - re: etiqueta
Sin saber más sobre la naturaleza del tráfico, solo puedo hablar en general / personalmente ...
la etiqueta siempre estará en el ojo del espectador. Sin esto, creo que en GA al menos probablemente se vería como directo, o tal vez (ninguno configurado) lo que sesgaría sus cifras para hacer que parezca que su marca era más grande de lo que es. Personalmente, preferiría una campaña cuidadosamente elegida para saber de dónde proviene el tráfico.
También podría verlo como, si apenas les envía tráfico, probablemente no lo noten, si los envía mucho, ¡probablemente no se quejen! Si lo hacen, entonces generalmente puedes encontrar a alguien más para darle tráfico gratis.
y si eres muy específico, no debería causar problemas; campaña como nombre de su sitio y fuente como la sección de su sitio, tal vez?
fuente