PDA

Просмотр полной версии : прозрачные прокси и x-forwarded-for - беда


nigadiai
18.04.2005, 20:01
вобщем такое дело

вставляю себе левый x-forwarded-for: 23.33.44.55 во все запросы. смотрю на на пример античате http://www.antichat.ru/cgi-bin/params.pl свой заголовок. все нормально - античат показывает мой левый x-forwarded-for: 23.33.44.55 и только.

но если я иду на chat.mail.ru и смотрю свою инфу то вижу там кроме своего левого ип еще и мой реальный ип. вобщем такая хуета создает тематические проблемы.

вобщем вопрос знающим людям почему? потому что античат показывает только первый x-forwarded-for: в запросе или это что то по хлеще?

inSa(Ne)rd
18.04.2005, 22:06
но если я иду на chat.mail.ru...
А если идешь и пишешь на talk.ru.chatmail.ru, то та жа проблема?

Algol
19.04.2005, 11:23
вобщем такое дело

вставляю себе левый x-forwarded-for: 23.33.44.55 во все запросы. смотрю на на пример античате http://www.antichat.ru/cgi-bin/params.pl свой заголовок. все нормально - античат показывает мой левый x-forwarded-for: 23.33.44.55 и только.

но если я иду на chat.mail.ru и смотрю свою инфу то вижу там кроме своего левого ип еще и мой реальный ип. вобщем такая хуета создает тематические проблемы.

вобщем вопрос знающим людям почему? потому что античат показывает только первый x-forwarded-for: в запросе или это что то по хлеще?

Не забывай, что сервер анализирует не только x-forwarded-for, но и IP-address в TCP пакете))
А он то у тебя и отображает реальный IP...

nigadiai
19.04.2005, 12:57
я не забываю - я не знаю - я в компах еще слабо рублю.
но это странно - зачем тогда x-forwarded-for нужен если можно было бы выкопать ип из тсп пакетов?

вобщем я был бы очень благодарен любому хорошему человеку кто бы мог мне помочь.
нужен хороший человек с хттп сервером на компе и ethereal. сам я как то немогу придумать как себя проснифить ибо если я гружу страничку с себя или компа с той же подсети то запрос разумеется через прокси не проходит. но вот если бы меня кто проснифил я был бы очень рад. хочу посмотреть где там западло сидит.

Algol
19.04.2005, 16:08
x-forwarded-for используется для того, что бы прокси сервера могли сообщить конечному серверу реальный IP клиента.

nigadiai
19.04.2005, 18:35
x-forwarded-for используется для того, что бы прокси сервера могли сообщить конечному серверу реальный IP клиента.


это ясно только зачем тогда x-forwarded-for нужен если как ты утверждаешь сверху этот реальный IP клиента еще есть где то в пакете?

Ekstazi
19.04.2005, 22:00
Если пользователь подключается к серверу через шлюз, или через прокси..., то в x-forwarded-for хранится его IP за шлюзом или за прокси, то есть это по сути и есть реальный IP клиента, правда, не всегда он является глобальным, например, если клиент подключен к VPN, adsl и тому подобное, то x-forwarded-for возвращает его локальный IP, правда не все прокси передают x-forwarded-for

Algol
20.04.2005, 12:51
это ясно только зачем тогда x-forwarded-for нужен если как ты утверждаешь сверху этот реальный IP клиента еще есть где то в пакете?

Да нет, как раз IP адрес из TCP пакета показывает адрес прокси а не твой адрес (если ты заходишь через прокси).

nigadiai
20.04.2005, 14:45
Да нет, как раз IP адрес из TCP пакета показывает адрес прокси а не твой адрес (если ты заходишь через прокси).

вот тото и оно - я про тоже

вставляю себе левый x-forwarded-for: 23.33.44.55 во все запросы. смотрю на на пример античате <http://www.antichat.ru/cgi-bin/params.pl> свой заголовок. все нормально - античат показывает мой левый x-forwarded-for: 23.33.44.55 и только. но если я иду на chat.mail.ru и смотрю свою инфу то вижу там кроме своего левого ип еще и мой реальный ип. вобщем такая хуета создает тематические проблемы. вобщем вопрос знающим людям почему? потому что античат показывает только первый x-forwarded-for: в запросе или это что то по хлеще?

приведу пример чтоб тебе стало яснее ибо я понимаю что ты чуть чуть не понял про что я говорю

ваш параметры хттп выбивает

TCP/IP протокол
REMOTE_ADDR: 94.55.122.34
REMOTE_PORT: 57501
HTTP протокол
GET http://antichat.ru/cgi-bin/params.pl HTTP/1.1
Accept: application/x-shockwave-flash, */*
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; iOpus-I-M)
Pragma: no-cache, bypass-client=95.94.145.231
Accept-Language: en-us
Via: cacheng 1.1, 1.1 cacheng
Referer: http://antichat.ru/
Connection: keep-alive
Cookie: hotlog=1; b=b
X-Forwarded-For: 34.55.66.55
Host: antichat.ru


то есть адресс прокси REMOTE_ADDR: 94.55.122.34, левый ип X-Forwarded-For: 34.55.66.55

но майл ру выбивает еще и реальный мой ип. и выглядит все там так 34.55.66.55, 94.55.122.34, реальный ип


вобщем я не знаю но мне кажется что прокси независимо от присутсвия в запросе X-Forwarded-For: добавляет всегда как положенно еще один X-Forwarded-For: а ваш скрипт просто тупит ибо это тупость заложена в самом пхп ибо пхп кажется что в заоловке может быть только один X-Forwarded-For. а майл ру 2 месяца думала пока додумала как эту тупость профиксить и докопаться до второго X-Forwarded-For.

Algol
20.04.2005, 15:16
А это что ?
Pragma: no-cache, bypass-client=95.94.145.231

Прокся не обязана передавать адрес клиента именно в X-Forwarded-For. Она может передавать и в других параметрах (например в поле Via или bypass-client)

А скрипт вообще-то не на ПХП а на перле. Хотя действительно, если несколько одноименных заголовков, то скрипт этого не отображает.
Но и прокси не должны добавлять одноименные заголовки. Обычно они просто перечисляют IP через запятую в поле X-Forwarded-For (это можно увидеть здесь http://antichat.ru/proxy для прокси 203.156.136.8:3128 например ).

nigadiai
20.04.2005, 16:47
А это что ?
Pragma: no-cache, bypass-client=95.94.145.231

.

а это еще один левый ип. но он тоже не помагает - его ваще майл ру нигде не показывает.


вот тото и оно что все как то не должно а непонятно как работает и проблемы создает нереальные.


вобщем чтоб не гадать нужен комп с сервером и ethereal чтоб меня проснифить или человек с компом которого я проснифю ибо комп с сервером и ethereal у меня есть.

Algol
21.04.2005, 11:55
вот тото и оно что все как то не должно а непонятно как работает и проблемы создает нереальные.


Чудес не бывает. Либо используется IP из TCP пакета, либо поля HTTP запроса. Другой инфы сервер в принципе получить не может.