Насколько надежен Rails ActionPack remote_ip для запросов? - PullRequest
0 голосов
/ 06 марта 2012

Я всегда опасался методов, которые возвращают публичные IP-адреса.Как правило, они являются неисправными, если вы не используете внешний сервис, такой как whatismyip.com.

Насколько надежен метод Rails remote_ip при определении внешнего публичного ip в 100% случаев? https://github.com/rails/rails/blob/master/actionpack/lib/action_dispatch/middleware/remote_ip.rb

Я только что обнаружил, что я боролся с проблемой CloudFlare и имел другой доступный заголовок CF-Connecting-IP.Похоже, что мне нужно вытянуть это через что-то вроде (headers["CF-Connecting-IP"] || remote_ip), чтобы преодолеть эту конкретную ситуацию.

Таким образом, мне кажется, что мне нужно либо обезьяньим патчем remote_ip, либо принять это во вниманиебез сушки моего кода везде.

Ответы [ 2 ]

2 голосов
/ 18 октября 2012

Я являюсь автором текущей реализации remote_ip, и мне пришлось переработать ее, чтобы правильно обработать X-Forwarded-For (особенно, если запрос содержит более одного X-Forwarded-For заголовка).Похоже, вы можете отправить запрос на получение, который заставляет метод также проверять заголовок CF-Connecting-IP.Наконец, вам может понадобиться изменить сервер приложений, который вы используете в работе, поскольку некоторые из них могут игнорировать повторяющиеся заголовки запросов .

0 голосов
/ 06 марта 2012

remote_ip происходит из заголовка HTTP-запроса, поэтому любой, кто знает, как его изменить, может изменить адрес remote_ip.также возможно использование прокси и изменение адреса таким образом.Вы можете использовать это для геолокации или что-то в этом роде, но я думаю, что это не хорошо для черного или белого списков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...