
Los proxies parten de la premisa de que existen para reenviar solicitudes de un sistema a otro. Por lo general, aportan algún valor —de lo contrario, no actuarían como intermediarios—, como el equilibrio de carga (escalabilidad), la prevención de fugas de datos (seguridad) o la compresión (rendimiento).
La cuestión es que, por lo demás, la solicitud enviada por el cliente se reenvía sin modificaciones a su destino.
Aquí es donde la cosa puede complicarse. Hoy en día, observamos que más de la mitad de las aplicaciones servidas a través de un proxy utilizan X-Forwarded-For. El 56 % de las aplicaciones reales y en funcionamiento lo usan, lo que lo convierte en un dato bastante importante. X-Forwarded-For es la cabecera HTTP personalizada que transmite la dirección IP original de un cliente para que la aplicación del otro extremo sepa cuál es. De lo contrario, solo vería la dirección IP del proxy, y eso no les gusta nada a algunas aplicaciones.
Esto se debe a que muchas aplicaciones necesitan conocer la dirección IP real de un cliente para ayudar a prevenir el fraude y permitir el acceso. Si últimamente has iniciado sesión en tu banco, Gmail o tu cuenta de Xbox (oye, es donde está Minecraft ¿vale?) desde un dispositivo distinto del que utilizas habitualmente, es posible que hayas recibido una alerta de seguridad. Esto se debe a que también se registra información sobre los lugares desde los que inicias sesión, en parte para detectar intentos de fraude y usos indebidos.
Tu dirección IP real también se utiliza para permitir o denegar el acceso en algunos sistemas, así como para deducir tu ubicación física. Por eso, esos avisos por correo electrónico suelen incluir preguntas como: «¿Eras tú quien estaba iniciando sesión desde Bulgaria?»
Algunos sistemas también utilizan X-Forwarded-For para aplicar controles de acceso. WordPress, por ejemplo, utiliza el archivo .htaccess para permitir el acceso en función de las direcciones IP. No, no es la mejor solución, pero es una práctica habitual y, como mínimo, hay que reconocerles el mérito de intentar proteger la aplicación frente a usos indebidos.
Independientemente de que sea una buena idea o no, si vas a utilizar X-Forwarded-For como parte de tu sistema de autenticación o autorización, probablemente deberías hacer todo lo posible para asegurarte de que sea realmente la verdadera dirección IP del cliente. Es uno de los factores más utilizados en la ecuación general de seguridad y protege tanto al consumidor como a los intereses corporativos.
Pero si aceptas a ciegas cualquier cosa que el cliente te envíe en esa cabecera, podrías estar permitiendo que alguien falsifique el valor y eluda así los mecanismos de seguridad destinados a impedir accesos ilegítimos. Al fin y al cabo, puedo falsificar prácticamente cualquier cosa que quiera con solo escribir unas líneas de código o instalar uno de los muchos complementos de Chrome que me permiten manipular fácilmente las cabeceras HTTP.
Una de las formas de asegurarte de que estás obteniendo la dirección IP real es no confiar en los datos introducidos por el usuario. Sí, de nuevo aparece la Regla Cero de la Seguridad: nunca confíes en los datos introducidos por el usuario. Y sabemos que los encabezados HTTP son datos introducidos por el usuario, aunque no lo parezcan.
Si ya tienes un proxy, estupendo. Si no, deberías conseguir uno. Porque así podrás extraer e introducir el valor correcto en X-Forwarded-For y frenar en seco a quienes intenten suplantar la dirección IP.
Básicamente, lo que quieres es que tu proxy pueda inspeccionar una solicitud y encontrar la dirección IP real oculta en su paquete IP. Algunos proxies pueden hacerlo mediante opciones de configuración o políticas, mientras que otros requieren algo de magia de programación. Independientemente de cómo la obtengas, ese es el valor que debes introducir en la cabecera HTTP X-Forwarded-For para continuar con normalidad. De este modo, te aseguras de que las aplicaciones o los servicios posteriores dispongan de información precisa en la que basar sus decisiones, incluidas las relativas al acceso y la autorización.
En la mayoría de las arquitecturas y situaciones, esto reducirá la posibilidad de que se utilice un X-Forwarded-For falsificado para obtener acceso no autorizado. Como siempre, cuanta más información tenga para hacerse una idea precisa del cliente —y de su legitimidad—, mayor será la seguridad. Combinar la dirección IP (en X-Forwarded-For) con el tipo de dispositivo, los agentes de usuario y otros datos que se transmiten automáticamente mediante HTTP y los protocolos de red proporciona un contexto más sólido para tomar una decisión fundamentada.
¡Mantente a salvo!
Recursos para gestionar X-Forwarded-For:
Sobre el autor

Lori MacVittie es ingeniera distinguida y evangelista jefe en la Oficina del CTO de F5, y cuenta con una amplia experiencia en entrega de aplicaciones, estrategia de automatización e infraestructura. Es conocida por convertir la complejidad en claridad, ya sea definiendo mecanismos de protección para agentes de IA, analizando arquitecturas multinube frágiles o explorando los límites de los sistemas escalables. Aporta más de treinta años de experiencia en el sector en desarrollo de aplicaciones, arquitectura de TI y operaciones de redes y sistemas. Antes de incorporarse a F5, fue una galardonada editora de tecnología. MacVittie posee un máster en Informática y es una autora prolífica cuyas publicaciones abarcan la seguridad, la nube y la arquitectura empresarial. También es una apasionada de los juegos de mesa y los videojuegos, y expresa sin complejos sus firmes opiniones sobre el queso.
Más artículos de Lori Mac VittieArtículos relacionados del blog

Cree servicios públicos seguros, resilientes y preparados para la IA con F5 y AWS
Descubre cómo las organizaciones del sector público pueden modernizar de forma segura sus aplicaciones y soluciones de IA, al tiempo que gestionan los sistemas heredados, el cumplimiento normativo y el riesgo operativo.
Protección de los sistemas de IA: por qué la seguridad debe avanzar al ritmo de la innovación
Desde acelerar avances revolucionarios en medicina y educación hasta transformar la vida cotidiana, la IA está cambiando nuestra forma de vivir y trabajar. Pero también ofrece grandes oportunidades a los ciberdelincuentes.
Avanzar hacia la optimización digital tras la transformación
Descubre estrategias de optimización digital para garantizar políticas de seguridad coherentes, impulsar la madurez de la transformación digital y superar los retos de la transformación.
Proyecto de código abierto destacado: mayor observabilidad con F5 Cloud Logger iApp
En el punto de mira del código abierto: cómo aumentar la observabilidad. Lee el blog de F5 para descubrir cómo exportar fácilmente la telemetría de BIG-IP a plataformas modernas de análisis en la nube.
El estado de la entrega de aplicaciones en 2018: la transformación digital impulsa la automatización y la multinube pese a las preocupaciones de seguridad
Descubre las principales conclusiones del cuarto informe anual de F5 sobre el estado de la entrega de aplicaciones.
Estado de la entrega de aplicaciones en 2017: automatización, API y DevOps
Descubre el informe sobre el estado de la entrega de aplicaciones de 2017. Lee el blog retrospectivo de F5 sobre los inicios del auge de las redes declarativas y los flujos de DevOps.