2010-05-29 5 views
4

Я уверен, что я помню, как читал - но не могу найти ссылки больше - об этом: на некоторых интернет-провайдерах (включая хотя бы одного большого интернет-провайдера в США) возможно появление запроса пользователя GET и POST из разных IP-адресов.Может ли запросы GET и POST с одного компьютера поступать из разных IP-адресов?

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

Я не говорить о том, ваш IP-адрес динамически переключаться между двумя запросами.

Я говорю об этом:

IP 1: 123.45.67.89 
IP 2: 101.22.33.44 

же пользователь делает GET, то POST, а затем GET снова, то POST снова и серверы посмотреть:

- GET from IP 1 
- POST from IP 2 
- GET from IP 1 
- POST from IP 2 

Таким образом, это то, что пользователь, веб-сервер видит разные IP-адреса для GET и POST.

Несомненно, что HTTP - это протокол без гражданства, это совершенно правильно?

Я хотел бы найти объяснение относительно того, как/почему у некоторых интернет-провайдеров настроены такие сети, чтобы это могло произойти.

Я спрашиваю, потому что кто-то попросил меня реализовать следующий IP-фильтр, и я уверен, что это принципиально сломанный код (нарушение хаоса для хотя бы одного крупного американского пользователя интернет-провайдера).

Вот фильтр сервлетов Java, который должен защищать от некоторых атак. Причиной тому является то, что:

Для любого фильтра сеанса проверки, что IP-адрес в запросе является тем же, который использовался при создании сеанса. Поэтому в этом случае идентификатор сеанса не может быть украден для формирования поддельных сеансов ».

http://www.servletsuite.com/servlets/protectsessionsflt.htm

Однако я уверен, что это по сути нарушена, потому что есть интернет-провайдеры, где вы можете увидеть GET и POST из разных IP-адресов.

+0

Интересно, я хотел бы знать об этом. – DMin

ответ

5

Некоторые интернет-провайдеры (или университетские сети) работают с прозрачными прокси-серверами, которые ретранслируют запрос с исходящего узла, который находится под наименьшей сетевой нагрузкой.

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

Вы правы, что это допустимое состояние для HTTP и, хотя это должно происходить относительно редко, именно поэтому валидация пользователя на основе IP не является подходящим определением идентичности.

1

Для просмотра веб-сервера это означает, что конечный пользователь находится за каким-то прокси-сервером. Как вы говорите, это совершенно верно, учитывая, что HTTP без гражданства, но я думаю, это было бы необычно. Насколько мне известно, большинство интернет-провайдеров назначают домашним пользователям реальный, не переведенный IP (хотя обычно динамический).

Конечно, для корпоративных/институциональных сетей они могут делать что угодно. балансировка нагрузки может означать, что запросы поступают из разных IP-адресов, и, возможно, иногда запросы типов обрабатываются разными шлюзами (хотя мне было бы интересно узнать, почему, учитывая, что N_GET >> N_POST).