@Zezst
программист PHP

Парсить содержимое HTTP_X_FORWARDED_FOR или нет?

День добрый.
Есть домен, запись А соответствует ip1. На ip1 стоит проксирующий nginx который делает запись вида:
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;

и передает управление на ip2. При использовании прокси до ip1, например сжатие трафика в хроме, HTTP_X_REAL_IP содержит ip прокси. Отключаем сжатие и в HTTP_X_REAL_IP уже лежит реальный ip пользователя.
При этом в HTTP_X_FORWARDED_FOR всегда лежит один или более ip разделенных запятой, при этом первым всегда лежит ip клиента.
Суть вопроса:
Стоит ли проверять дополнительные поля где может лежать ip, или проще просто парсить содержимое HTTP_X_FORWARDED_FOR ?
  • Вопрос задан
  • 1299 просмотров
Решения вопроса 1
SagePtr
@SagePtr
Еда - это святое
X-Forwarded-For содержит цепочку адресов, которые были переданы клиентом, каждый последующий прокси в цепочке (если он так сконфигурирован) добавляет туда адрес, с которого был совершён запрос. Соответственно, доверия к этим адресам быть никакого не может, клиент может что угодно туда вписать.
X-Real-IP - это тот IP-адрес, с которого был произведён запрос к nginx. Доверие к нему возможно в том случае, если бэкенд невозможно запросить, минуя ваш nginx (в противном случае - туда тоже можно передать всё что угодно).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы