Получить реальный IP-адрес клиента на Heroku

На Heroku Cedar я хотел получить клиентас IP. Первая попытка:

ENV['REMOTE_ADDR']

Конечно, это не работает, потому что все запросы передаются через прокси. Таким образом, альтернативой было использовать:

ENV['HTTP_X_FORWARDED_FOR']

Но это не совсем безопасно, не так ли?

Если он содержит только одно значение, я беру это. Если он содержит более одного значения (через запятую), я мог бы взять первое.

Но что, если кто-то манипулирует этим значением? Я не могу доверятьENV['HTTP_X_FORWARDED_FOR'] как я мог сENV['REMOTE_ADDR'], И нет списка доверенных прокси, которые я мог бы использовать.

Но должно бытькаким-то образом надежно завладеть клиентомс IP-адресом всегда. Вы знаете один?

Вих документыГероку описывает этоX-Forwarded-For является "исходный IP-адрес клиента, подключающегося к маршрутизатору Heroku ".

Это звучит так, как будто Heroku может перезаписатьX-Forwarded-For с исходящим удаленным IP. Это предотвратит подделку, верно? Может кто-нибудь это проверить?

Ответы на вопрос(3)

Ваш ответ на вопрос