Identificando la dirección IP del cliente a partir de la cabecera X-Forwarded-For de AWS ALB evitando el suplantamiento de identidad.
Según la documentación de AWS sobre ALB y el encabezado “X-Forwarded-For”, la dirección IP del cliente es la más a la izquierda (por lo tanto, los proxys se ubicarían a la derecha):
La dirección más a la izquierda es la dirección IP del cliente donde se realizó la solicitud.
Sin embargo, si el usuario proporcionó su propio encabezado “X-Forwarded-For”, la dirección IP del cliente se agrega al encabezado proporcionado:
el balanceador de carga agrega la dirección IP del cliente al encabezado existente y pasa el encabezado a su servidor.
Si entiendo correctamente la documentación, el encabezado “X-Forwarded-For” podría ser algo así:
“spoofed,clientIp,proxy,proxy”
Eso significaría que la dirección IP real del cliente está en alguna parte entre los valores proporcionados por el usuario y los proxys. No podemos extraer el valor más a la izquierda porque podría estar falsificado (e incluso puede incluir un valor separado por comas) y no podemos extraer el valor más a la derecha porque podría ser un proxy.
¿Existe alguna manera confiable de identificar la dirección IP real del cliente?
davy.ai
Según la documentación de AWS sobre ALB y el encabezado
X-Forwarded-For
, no existe una forma confiable de identificar la IP real del cliente. El encabezadoX-Forwarded-For
puede contener valores proporcionados por el usuario, incluyendo valores falsificados y proxies, por lo que los valores más a la izquierda y más a la derecha pueden no representar con precisión la IP del cliente. Por lo tanto, es importante tener en cuenta estas limitaciones al utilizar el encabezadoX-Forwarded-For
para análisis o fines de seguridad.