HTTP |
---|
Métodos de solicitud |
Campos de encabezado |
Códigos de estado de respuesta |
Métodos de control de acceso de seguridad |
Vulnerabilidades de seguridad |
En HTTP , " Referer " (un error ortográfico de " Referrer " [1] ) es un campo de encabezado HTTP opcional que identifica la dirección de la página web (es decir, la URI o IRI ) desde la que se ha solicitado el recurso. Al comprobar el referente, el servidor que proporciona la nueva página web puede ver dónde se originó la solicitud.
En la situación más común, esto significa que cuando un usuario hace clic en un hipervínculo en un navegador web , lo que hace que el navegador envíe una solicitud al servidor que contiene la página web de destino, la solicitud puede incluir el campo Referer, que indica la última página en la que estuvo el usuario (aquella en la que hizo clic en el enlace).
Los sitios web y servidores web registran el contenido del campo Referer recibido para identificar la página web desde la que el usuario siguió un enlace, con fines promocionales o estadísticos. [2] Esto implica una pérdida de privacidad para el usuario y puede introducir un riesgo de seguridad . [3] Para mitigar los riesgos de seguridad, los navegadores han ido reduciendo de forma constante la cantidad de información enviada en Referer. A marzo de 2021, de forma predeterminada , Chrome , [4] Edge basado en Chromium , Firefox , [5] Safari [6] envían de forma predeterminada solo el origen en las solicitudes de origen cruzado, eliminando todo excepto el nombre de dominio.
El error ortográfico de referrer fue introducido en la propuesta original del científico informático Phillip Hallam-Baker para incorporar el campo de encabezado "Referer" en la especificación HTTP . [7] [8] El error ortográfico quedó grabado en piedra en el momento (mayo de 1996) de su incorporación en el documento de estándares Request for Comments RFC 1945 [9] (que "refleja el uso común del protocolo denominado "HTTP/1.0 " ' en ese momento); el coautor del documento Roy Fielding señaló en marzo de 1995 que "ninguno de los dos (referer o referrer) es entendido por" el corrector ortográfico estándar de Unix de la época. [10] Desde entonces, "Referer" se ha convertido en una ortografía ampliamente utilizada en la industria cuando se habla de referentes HTTP; sin embargo, el uso del error ortográfico no es universal, ya que la ortografía correcta "referrer" se utiliza en algunas especificaciones web como el Referrer-Policy
encabezado HTTP o el Document Object Model . [3]
Al visitar una página web, el referente o página de referencia es la URL de la página web anterior desde la que se siguió un enlace.
En términos más generales, un referente es la URL de un elemento anterior que generó esta solicitud. Por ejemplo, el referente de una imagen es generalmente la página HTML en la que se mostrará. El campo referente es una parte opcional de la solicitud HTTP que envía el navegador web al servidor web. [11]
Muchos sitios web registran los referentes como parte de su intento de rastrear a sus usuarios . La mayoría del software de análisis de registros web puede procesar esta información. Debido a que la información del referente puede violar la privacidad , algunos navegadores web permiten al usuario deshabilitar el envío de información del referente. [12] Algunos software de proxy y firewall también filtrarán la información del referente, para evitar filtrar la ubicación de sitios web no públicos. Esto, a su vez, puede causar problemas: algunos servidores web bloquean partes de su sitio web a los navegadores web que no envían la información de referente correcta, en un intento de evitar enlaces profundos o uso no autorizado de imágenes ( robo de ancho de banda ). Algunos software de proxy tienen la capacidad de dar la dirección de nivel superior del sitio web de destino como referente, lo que reduce estos problemas pero aún puede, en algunos casos, divulgar la última página web visitada por el usuario.
Muchos blogs publican información de referencias para enlazar a personas que enlazan a ellos y, de ese modo, ampliar la conversación. Esto ha provocado, a su vez, el aumento del spam de referencias : el envío de información de referencias falsa para popularizar el sitio web del spammer.
Es posible acceder a la información del referente en el lado del cliente utilizando document.referrer en JavaScript . [13] Esto se puede utilizar, por ejemplo, para individualizar una página web en función de la consulta del motor de búsqueda de un usuario. Sin embargo, el campo de referente no siempre incluye palabras clave de búsqueda, como cuando se utiliza la Búsqueda de Google con HTTPS. [14]
La mayoría de los servidores web mantienen registros de todo el tráfico y registran el URL de referencia HTTP enviado por el navegador web para cada solicitud. Esto plantea una serie de problemas de privacidad y, como resultado, se han desarrollado varios sistemas para evitar que los servidores web reciban la URL de referencia real. Estos sistemas funcionan borrando el campo de referencia o reemplazándolo con datos inexactos. Generalmente, las suites de seguridad de Internet borran los datos de referencia, mientras que los servidores basados en web los reemplazan con una URL falsa, generalmente la propia. Esto plantea el problema del spam de referencia. Los detalles técnicos de ambos métodos son bastante consistentes: las aplicaciones de software actúan como un servidor proxy y manipulan la solicitud HTTP, mientras que los métodos basados en web cargan sitios web dentro de marcos, lo que hace que el navegador web envíe una URL de referencia de la dirección de su sitio web. Algunos navegadores web brindan a sus usuarios la opción de desactivar los campos de referencia en el encabezado de la solicitud. [12]
La mayoría de los navegadores web no envían el campo de referencia cuando se les indica que redireccionen mediante el campo "Actualizar". Esto no incluye algunas versiones de Opera y muchos navegadores web móviles. Sin embargo, el Consorcio World Wide Web (W3C) desaconseja este método de redirección . [15]
Si se accede a un sitio web desde una conexión segura HTTP (HTTPS) y un enlace apunta a cualquier lugar excepto a otra ubicación segura, entonces no se envía el campo de referencia. [11]
El estándar HTML5 agregó soporte para el atributo/valor rel="noreferrer"
, que indica al agente de usuario que no envíe un referente. [16]
Otro método para ocultar el referente es convertir la URL del enlace original en una URL basada en un esquema de URI de datos que contenga una pequeña página HTML con una actualización meta a la URL original. Cuando se redirige al usuario desde la data:
página, el referente original se oculta.
La versión 1.1 del estándar de Política de Seguridad de Contenido introdujo una nueva directiva de referencia que permite un mayor control sobre el comportamiento del navegador en relación con el encabezado de referencia. En concreto, permite al webmaster indicar al navegador que no bloquee la referencia en absoluto, que la revele solo cuando se mueva con el mismo origen, etc. [17]