Obtenga la dirección IP real del cliente en Heroku

En Heroku Cedar, quería obtener la IP del cliente. Primer intento:

ENV['REMOTE_ADDR']

Esto no funciona, por supuesto, porque todas las solicitudes se pasan a través de proxies. Así que la alternativa era usar:

ENV['HTTP_X_FORWARDED_FOR']

Pero esto no es del todo seguro, ¿verdad?

Si contiene un solo valor, tomo esto. Si contiene más de un valor (separados por comas), podría tomar el primero.

Pero ¿y si alguien manipula este valor? No puedo confiarENV['HTTP_X_FORWARDED_FOR'] como pude conENV['REMOTE_ADDR']. Y tampoco hay una lista de servidores proxy de confianza que pueda usar.

Pero debe haberde alguna manera para obtener de forma fiable la dirección IP del cliente, siempre. ¿Conoces uno?

Ensus docsHeroku describe queX-Forwarded-For es "la dirección IP de origen del cliente que se conecta al enrutador Heroku".

Esto suena como si Heroku pudiera estar sobrescribiendo elX-Forwarded-For con el IP remoto originario. Esto evitaría la falsificación, ¿verdad? ¿Alguien puede verificar esto?

Respuestas a la pregunta(3)

Su respuesta a la pregunta