X-Forwarded-For
X-Forwarded-For — HTTP-заголовок, у який проміжний сервер записує IP-адресу клієнта, що надіслав йому запит.
Оновлено · Редакція Prokso
X-Forwarded-For (скорочено XFF) — це рядок у HTTP-заголовках запиту. Проміжний сервер дописує туди IP-адресу, з якої до нього прийшов запит. Якщо запит проходить кілька таких серверів, адрес у заголовку стає кілька, через кому. Перша зліва зазвичай належить клієнту.
Найчастіше цей заголовок додає зворотний проксі або балансувальник навантаження перед сайтом. Сервер сайту бачить лише адресу балансувальника, тому дізнається IP відвідувача саме з XFF. Так само може робити прозорий проксі в мережі офісу чи оператора зв'язку.
Поруч із XFF існують ще два заголовки. Via показує, через які проміжні вузли пройшов запит. Forwarded — стандартна версія з RFC 7239, де адреса клієнта, протокол і хост записуються в одному полі, наприклад Forwarded: for=203.0.113.5;proto=https.
Ось як це виглядає на практиці. Ви відкриваєте сайт, запит іде спочатку через проксі, а потім через балансувальник сайту. Якщо проксі додає XFF з вашою адресою, балансувальник допише до нього адресу проксі, і сервер сайту отримає обидві. Якщо проксі нічого не додає, у заголовку буде лише адреса проксі, яку записав балансувальник. Саме тому важливо знати поведінку кожної ланки, а не лише останньої.
Для того, хто працює через проксі, ці заголовки важливі з простої причини. Якщо проміжний сервер передає їх далі, сайт може прочитати з них ваш справжній IP, хоча з'єднання прийшло з іншої адреси. Проксі, які не додають таких заголовків і не видають себе, називають анонімними або елітними.
Варто пам'ятати, що XFF — звичайний текст. Клієнт може записати туди будь-що, тому сайти зазвичай довіряють лише тій частині заголовка, яку додав їхній власний сервер. Але як поводиться конкретний сайт, ззовні не видно, тому краще самому знати, що він отримує. Тому не вважайте заголовок ні доказом, ні захистом.
Перевірити це нескладно. Відкрийте сторінку мій IP через проксі і подивіться, яку адресу, країну та провайдера вона показує. Рядок проксі можна окремо перевірити інструментом перевірка проксі. Якщо десь з'являється ваш домашній IP, шукайте причину в ланцюжку: у браузері, програмі або проміжному сервері, який додає заголовки.
Питання й відповіді
Чи може сайт дізнатися мій IP через X-Forwarded-For?
Так, якщо проміжний сервер на шляху записав туди вашу адресу і передав заголовок далі. Відкрийте сторінку «мій IP» через проксі та перевірте рядок проксі інструментом перевірки, щоб побачити, яку адресу отримує сайт.
Чим X-Forwarded-For відрізняється від Forwarded?
X-Forwarded-For — старий заголовок, який став звичним без стандарту. Forwarded описаний в RFC 7239 і в одному полі передає адресу клієнта, протокол і хост. Сенс у них однаковий.
Резидентські $1.59, мобільні $2.50, серверні $0.65 за 1 ГБ
Реєстрація за хвилину, доступи одразу після оплати.