Referrer-Policy
Uso
Cuando un navegador sigue un enlace o carga un subrecurso, normalmente envía una cabecera Referer que contiene la URL de la página de origen. La cabecera Referrer-Policy da a los operadores del sitio control sobre qué parte de la URL se comparte, o sobre si la cabecera Referer se envía siquiera.
Los sitios sensibles a la privacidad eliminan la información de referencia para evitar filtrar parámetros de consulta, rutas o detalles del origen a terceros. La política se aplica a las navegaciones, a las solicitudes de subrecursos y a las operaciones de precarga iniciadas desde la página.
Una lista de políticas separadas por comas sirve como cadena de respaldo. El navegador elige la última política de la lista que admite, lo que simplifica los despliegues compatibles con el futuro.
Cómo establecer la política
Existen tres mecanismos para establecer la política de referencia:
Los atributos a nivel de elemento prevalecen sobre la etiqueta meta a nivel de página, que a su vez prevalece sobre la cabecera HTTP. La cabecera HTTP es el método más fiable, porque la política entra en vigor antes de que se analice cualquier HTML.
no-referrer
La directiva no-referrer suprime por completo la cabecera Referer. No se envía ninguna información de URL con las solicitudes originadas en la página.
no-referrer-when-downgrade
La directiva no-referrer-when-downgrade envía la URL completa (origen, ruta y cadena de consulta) en las solicitudes con el mismo protocolo. Cuando la solicitud degrada la seguridad (de HTTPS a HTTP), la cabecera Referer se omite.
origin
La directiva origin envía únicamente la parte del origen de la URL (esquema, host y puerto). La ruta y la cadena de consulta se eliminan en todas las solicitudes.
origin-when-cross-origin
La directiva origin-when-cross-origin envía la URL completa en las solicitudes del mismo origen. En las solicitudes de origen cruzado o cuando hay degradación de protocolo, solo se envía el origen.
same-origin
La directiva same-origin envía la URL completa en las solicitudes del mismo origen y omite por completo la cabecera Referer en las solicitudes de origen cruzado.
strict-origin
La directiva strict-origin envía solo el origen, y únicamente cuando el nivel de seguridad del protocolo se mantiene o mejora (de HTTPS a HTTPS, o de HTTP a HTTP). Una degradación de protocolo suprime la cabecera.
strict-origin-when-cross-origin
La directiva strict-origin-when-cross-origin envía la URL completa en las solicitudes del mismo origen, envía solo el origen en las solicitudes de origen cruzado con el mismo nivel de seguridad y omite la cabecera cuando hay degradación de protocolo. Es la política predeterminada en los navegadores modernos cuando no se establece ninguna Referrer-Policy.
unsafe-url
La directiva unsafe-url envía la URL completa (origen, ruta y cadena de consulta) con todas las solicitudes, sin importar el destino ni el protocolo. Esto expone la mayor cantidad de información y rara vez resulta adecuado para su uso en producción.
Ejemplo
Una política predeterminada estricta que envía solo el origen en las navegaciones de origen cruzado:
Referrer-Policy: strict-origin-when-cross-origin
Una configuración centrada en la privacidad que suprime todos los datos de referencia:
Referrer-Policy: no-referrer
Una cadena de respaldo en la que el navegador elige strict-origin si lo admite y, en caso contrario, recurre a no-referrer:
Referrer-Policy: no-referrer, strict-origin