Eliminar http referer

¿Es una forma de eliminar u ocultar la información del referer de http en el encabezado de la solicitud? Quiero eliminar la información de referencia de HTTP de los usuarios que van a otro sitio desde mi sitio usando un script posiblemente en javascript python o django

ejemplo:

Host slogout.espncricinfo.com User-Agent Mozilla/5.0 (Windows NT 6.1; rv:5.0) Gecko/20100101 Firefox/5.0 Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language en-us,en;q=0.5 Accept-Encoding gzip, deflate Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7 Connection keep-alive Referer http://slogout.espncricinfo.com/index.php?page=index&level=login 

A partir de 2015, esta es la forma de evitar el envío del encabezado Referer:

Simplemente agregue esto a la sección principal de la página web:

   

Esto funciona tanto para los enlaces como para las solicitudes de Ajax hechas por código JavaScript en la página.

Otras opciones meta válidas incluyen:

     

• Vea si funciona para su navegador aquí: http://caniuse.com/#feat=referrer-policy

• Ver especificaciones aquí: http://w3c.github.io/webappsec/specs/referrer-policy/

También tenga en cuenta que los navegadores ahora envían el encabezado Origin (con solicitudes CORS y solicitudes POST, consulte aquí: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin ) que incluye dominio y puerto, y, hasta donde yo sé, no puede ser eliminado. Si usa el referente contendrá información similar al encabezado de Origin , que ya es bueno desde el punto de vista de la privacidad, ya que ocultará la página exacta en la que se encuentra el usuario .

Actualizar:

Si desea eliminar la referencia utilizando solo JavaScript, puede agregar la metaetiqueta adecuada dinámicamente justo antes de realizar la solicitud de Ajax. Este JavaScript agregará a la sección principal de la página web:

 var meta = document.createElement('meta'); meta.name = "referrer"; meta.content = "no-referrer"; document.getElementsByTagName('head')[0].appendChild(meta); 

Hay una solución de navegador cruzada en Javascript, usa Iframes creados dinámicamente, verifica una prueba de concepto (descargo de responsabilidad: usa un poco de JS lib que he codificado para ese fin).

Si solo está interesado en ocultar la URL completa y no le importa mantener su nombre de dominio expuesto, este pequeño código JavaScript hace el trabajo.

Su usuario está en example.com/secret_url_we_want_to_hide , su usuario hace clic en un enlace que se supone que debe enviarlos a google.com . pero en lugar de Go to Google , usamos esto:

a href="http://example.com/redirect.html#http://google.com">Go to Google

Donde /redirect.html es una página HTML que contiene lo siguiente: (Editar: ¡consulte la actualización!)

  

Google.com verá http://example.com/redirect.html en la etiqueta de referencia y nunca verá el example.com/secret_url_we_want_to_hide real.

ACTUALIZAR:

Firefox tiene un error con location.hash, la solución es la siguiente:

  

Existe una variedad de mecanismos para hacerlo, dependiendo de la versión de navegador que use. Para cualquier navegador, si el destino es HTTP, puede “blanquear” el origen redireccionando a una página HTTPS que luego navega a la página de destino.

Para IE, puede realizar la navegación usando JavaScript (por ejemplo, window.open) que suprimirá el referer. O puede usar META Refresh, pero hay un costo de perforación para eso. Para los navegadores basados ​​en WebKit, consulte la opción NoReferrer LINK REL: http://www.webkit.org/blog/907/webkit-nightlies-support-html5-noreferrer-link-relation/

Había estado buscando una solución similar, en blanco el referente, pero solo para contar visitas únicas desde un sitio web de referencia. El problema que tuve fue que, si alguien visitaba mi sitio desde un enlace en particular, el contador de visitas subía, pero si esa persona actualizaba la página, el contador de visitantes todavía subía.

Utilicé Google para visitar varios recursos sobre este tema y sí, fue muy difícil encontrar la respuesta hasta que alguien me indicó que buscara php.net para encontrar una solución.

Encontré la solución para usar

 header('Refresh: 0; url=index.php'); 

Pero solo el código anterior no es la solución. La solución radica en su ubicación. Aquí está el código completo:

 $ref=@$_SERVER[HTTP_REFERER]; $domain = parse_url($ref, PHP_URL_HOST); If ($domain === "google.com") { header('Refresh: 0; url=index.php'); //Resets header info to host site so that on page refresh, the hit counter does not } // increase but increases only when someone visits from google url again 

Después de la “actualización”, la información del encabezado cambia a la del sitio host, por lo que al actualizar la página, la statement “if” no se validará y el contador de visitas no boostá.

Puedes poner tu contador de visitas dentro del bloque IF. También puede progtwigr diferentes parámetros para registrar hits en blanco en su sitio web y diferentes parámetros para registrar también todas las cargas de página / páginas vistas.

Espero eso ayude…..

Su suposición de acceder al encabezado Referer a través de javascript no es posible. Al igual que el encabezado User-Agent en http, referer, etc., no se puede acceder mediante javascript. Los valores de estos encabezados son alimentados por el navegador. Lo que puede hacer es un trabajo complejo si lo necesita.

Hay otro método que utiliza el método history.replace () para ocultar la cadena de consulta, por ejemplo, si desea http://example.com/search?q=100 reemplazar con http://example.com/search , usted puede hacer de esta manera:

 history.replace(null,null,'search') 

¡Espero que esto ayude! :RE

No puedes. Es la decisión de los navegadores de enviar un referer o no. Lo que puede hacer es ocultar su referencia utilizando un enlace anonimizador .

Estaba buscando una solución para esto también, y afortunadamente encontré este sitio Hide My Referrer . Lo que me impresionó es que incluso funciona para las solicitudes https> https.

Generará un enlace que puede usar que hará exactamente lo que está buscando.