Aunque cumple funciones legítimas, el encabezado Referer (o Referer header en inglés) puede convertirse inadvertidamente en una puerta de entrada para accesos no autorizados y exposición de datos. Comprender sus riesgos potenciales y adoptar medidas de seguridad proactivas permite proteger eficazmente la integridad de las aplicaciones web frente a estas amenazas.
Pero antes de profundizar en esta vulnerabilidad, hablemos brevemente sobre el encabezado Referer.
Entendiendo el encabezado referer
El encabezado Referer es un componente crucial de las solicitudes web, ya que contiene la URL de la página anterior desde la cual un usuario llegó a la actual.
Por ejemplo, imaginemos que example.com usa la biblioteca jQuery y la carga mediante un CDN:
<script src="
https://code.jquery.com/jquery-3.7.1.js
"></script>
Cuando un usuario carga example.com, también se realiza una solicitud a code.jquery.com para obtener el archivo JavaScript alojado en el dominio externo.
A continuación, se muestra que la solicitud a code.jquery.com incluye el Referer header con el valor https://example.com:
GET /jquery-3-7-1.js HTTP/2
Host: code.jquery.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:94.0) Gecko/20100101 Firefox/94.0
Accept: */*
Accept-Language: en-US, en;q=0.5
Accept-Encoding: gzip, deflate
Referer: https://example.com/
Explotación
Aunque normalmente se utiliza con fines benignos, como análisis, registro (loggin) y optimización de caché, el encabezado Referer tiene potencial para ser explotado: puede derivar en rastreo no autorizado, robo de datos y problemas de divulgación de información.
Por ejemplo, consideremos un escenario en el que una página de restablecimiento de contraseña incluye un enlace aparentemente inofensivo a una red social en su pie de página. Al hacer clic en este link, se podría exponer accidentalmente la URL de restablecimiento de contraseña y los datos asociados del usuario a la plataforma social vinculada, provocando una vulnerabilidad de seguridad importante.
Los restablecimientos de contraseña generalmente se realizan enviando un enlace único al correo electrónico asociado. El propietario de la cuenta puede seguir este enlace y establecer una nueva contraseña.
Por lo general, estos enlaces solo pueden usarse una vez y contienen tokens largos e impredecibles. Sin embargo, si el token se transmite en la URL y la página es vulnerable a la filtración del Referer, el propietario del recurso de destino podría ver los detalles de la solicitud. Por ejemplo: revisar los registros del servidor web, robar el enlace y usarlo antes que el usuario original. En este caso, el tamaño del token no importa.
Las dos siguientes imágenes ilustran un escenario real en el que un token de restablecimiento de contraseña se expone involuntariamente a www.facebook.com.
Como puedes ver, después de seguir el enlace, la página muestra múltiples enlaces a diferentes redes sociales. Dado que el encabezado Referer se enviará en cada uno, las posibilidades de que uno sea malicioso no son nulas.
Por supuesto, esto no significa que los dueños legítimos de estos sitios intentarán robar los tokens, pero podría darse una situación en la que atacantes suplanten la dirección IP del sitio original (como www.facebook.com) o incrusten una versión falsificada. Nunca se sabe de dónde puede venir la amenaza. Dicho esto, hablemos sobre cómo proteger tus sitios web de ella.
Recomendaciones
Para proteger tus aplicaciones de la filtración accidental de información sensible a través del encabezado Referer, sigue estas cuatro prácticas recomendadas:
- Prefiere POST sobre GET: siempre que sea posible, usa el método POST en lugar de GET, especialmente al manejar información sensible. Esto evita que los datos sensibles aparezcan en las URLs, que podrían exponerse por medio del Referer.
- Usa HTTPS e implementa HSTS: asegúrate siempre de que tus aplicaciones utilicen HTTPS y considera implementar una política adecuada de HTTP Strict Transport Security (HSTS). Esto refuerza las conexiones seguras, reduciendo la posibilidad de filtración de información confidencial.
- Ten cuidado con el contenido de terceros: evalúa y, cuando sea necesario, elimina cualquier contenido de terceros en áreas seguras de tu aplicación. Este contenido podría provocar filtraciones a través del Referer header.
- Controla la información del Referer: configura el encabezado Referrer-Policy adecuado para controlar qué información se envía por medio del encabezado Referer, limitando así el riesgo de exposición de datos sensibles.
Al implementar estas recomendaciones, los desarrolladores y administradores pueden mejorar significativamente la seguridad de sus aplicaciones, mitigando los riesgos asociados con la filtración de información mediante el encabezado Referer.
Recursos 🔗
Para más detalles y pautas sobre cómo proteger aplicaciones web, consulta los siguientes recursos:
Conclusión
Con estas herramientas para proteger tu encabezado Referer, podrás fortalecer tus aplicaciones web contra posibles violaciones de datos. No lo olvides: mantente siempre proactivo para garantizar la integridad y seguridad de tus activos digitales.






