2011-07-30 26 views
119

Sé que es posible obtener un HTTP_REFERER vacío. ¿Bajo qué circunstancias sucede esto? Si obtengo uno vacío, ¿siempre significa que el usuario lo cambió? ¿Conseguir uno vacío es lo mismo que obtener uno nulo? y bajo qué circunstancias lo consigo también?En qué casos estará HTTP_REFERER vacío

+8

Cuando el cliente no envía uno. –

Respuesta

201

Será/puede estar vacío cuando el usuario final

  • entraron en la URL del sitio en el navegador en sí barra de direcciones.
  • visitó el sitio mediante un marcador mantenido por el navegador.
  • visitó el sitio como la primera página en la ventana/pestaña.
  • cambió de una URL https a una URL http.
  • cambió de una URL https a una URL https diferente.
  • tiene instalado un software de seguridad (antivirus/firewall/etc.) que quita la referencia de todas las solicitudes.
  • está detrás de un proxy que quita la referencia de todas las solicitudes.
  • visitó el sitio mediante programación (como, curl) sin establecer el encabezado de referencia (¡busbots!).
+22

Es posible que desee agregar "cuando el usuario pasa de una página segura (HTTPS) a una insegura". –

+4

"visitó el sitio como primera página en la ventana/pestaña". ¿Incluso si fue haciendo clic en un enlace y abriendo en una nueva ventana/pestaña?¿Estás seguro? Ese sería un comportamiento muy incorrecto del navegador – matteo

+0

También vea aquí http://stackoverflow.com/questions/21922143/why-isnt-the-referral-removed-for-google-https-http para excepciones a este – GetFree

26

HTTP_REFERER - enviado por el navegador, indicando la última página que ha visto el buscador.

Si confiando [HTTP_REFERER] y por la razón que es importante, no debería, ya que puede ser falsificada fácilmente:

  1. Algunos navegadores limitan el acceso a los no permite HTTP_REFERER que se pasa
  2. Tipo de una dirección en la barra de direcciones no pasará el HTTP_REFERER
  3. abrir una nueva ventana del navegador no pasará el HTTP_REFERER, porque HTTP_REFERER = NULL
  4. tiene algún complemento del navegador que lo bloquea por razones de privacidad. Algunos firewalls y AVs lo hacen.

probar este extensión de Firefox, usted será capaz de establecer cualquier encabezado que desee:

@Master de Celebración:

Firefox:

extensiones:refspoof, refontrol, modify headers, no-referer

Deshabilitar por completo: la opción está disponible en about: config en "network.http.sendRefererHeader" y desea establecer esto en 0 para deshabilitar el paso del referer.

Google Chrome/Chromium:

extensiones:noref, spoofy, external noreferrer

desactivar por completo: Chnage ~/.config/google-chrome/default/Preferencias o ~ /. config/chromium/Default/Preferences y configure esto:

{ 
    ... 
    "enable_referrers": false, 
    ... 
} 

o simplemente añadir --no-referentes al acceso directo o en CLI:

google-chrome --no-referrers 

Opera:

desactivar por completo: Configuración> Preferencias> Avanzado> Red y desactive la casilla "Enviar remitente información"

servicio web de suplantación:

http://referer.us/

independiente Filtering Proxy (spoof cualquier cabecera):

Privoxy

Spoofing HTTP_REFERER al utilizar wget

'--referer = url'

Spoofing http_referer al usar curl

-e, --referer

Spoofing HTTP_REFERER wth telnet

telnet www.yoursite.com 80 (press return) 
GET /index.html HTTP/1.0 (press return) 
Referer: http://www.hah-hah.com (press return) 
(press return again) 
+0

[Tamper Data] (https://addons.mozilla.org/en-US/firefox/addon/tamper-data/) es otra extensión de Firefox que merece la pena si quieres jugar con el cambio de los valores de referencia. –

+0

Estaba tratando realmente de recordar su nombre. pero mi memoria me traicionó. Gracias :) – ThatGuy

+0

@nix 'Algunos navegadores limitan el acceso para no permitir la transferencia de HTTP_REFERER. ¿Podría nombrar un ejemplo para dicho navegador y/o extensión? –

8

lista de BalusC es sólido. Una forma adicional de que este campo aparezca con frecuencia vacío es cuando el usuario está detrás de un servidor proxy. Esto es similar a estar detrás de un cortafuegos, pero es ligeramente diferente, así que quería mencionarlo en aras de la integridad.

3

También estará vacío si se usa el nuevo Referrer Policy standard draft para evitar que el encabezado del referer se envíe al origen de la solicitud. Ejemplo:

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

Aunque Chrome y Firefox ya se han puesto en marcha un proyecto de versión de la Política Referente, usted debe tener cuidado con él porque, por ejemplo, Chrome espera no-referrer en lugar de none (y he visto también never en algún lugar).

Cuestiones relacionadas