Может ли IP меняться во время сеанса?

может ли IP меняться во время сеанса?

Как насчет разных движков (PHP, Django, Ruby и т. д.) ?

PS: Я не совсем понимаю, что такое "динамический ip" и как они проводятся интернет-провайдерами... И как ломаются сеансы...

обновление: Должен ли я отслеживать изменение IP для безопасности? В настоящее время я работаю с PHP, поэтому, если встроенная система сеанса не имеет безопасности, пожалуйста, предоставьте некоторый код и алгоритмы

3 ответов


IPs может измениться в любое время - идея HTTP заключается в том, что каждый запрос независим.

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

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

но опять же, люди известны тем, что делают странные вещи, такие как использование IPs для вещей, которые они никогда не предназначались (в смысле OSI/IETF) для идентификации, аутентификации и т. д.. Это вдвойне плохо, потому что один IP обычно означает многих клиентов - например, вся ваша семья, вероятно, разделяет тот же публичный IP-что, если вы и ваш партнер посещает один и тот же сайт? Как сервер может отличить вас друг от друга?

@update

нет, вы не должны отслеживать изменения IP для "безопасности" - единственное исключение, если вы можете иметь дело с функциями geoIP и хотите отключить/раздражать пользователей различных служб анонимизации.

в принципе, если ваши пользователи подключаются напрямую (а не через прокси/TOR), очень вероятно, что они снова подключатся из соседнего местоположения. Если ваши пользователи подключение один раз из США, один раз из России - это может означать, что это два разных человека (один из которых, возможно, украл учетные данные), или что пользователь использует анонимайзер.

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

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

@обновление 2 Безопасность-сложная тема-всякий раз, когда вы имеете дело с ней, вам нужно ответить на два фундаментальных вопроса:

безопасность что: что так ценно, что нуждается в защите

  • конфиденциальность пользователей
  • разрешений
  • активы (физические или виртуальные)

и что: Какой сценарий атаки вас беспокоит

  • Cookie hijacking (firesheep) (просто используйте SSL и делайте с ним по большей части - нет никакого способа обойти проблему, что HTTP незашифрован и часто по общественному радио)
  • взяв на счета (требуют дополнительные полномочия для очень чувствительной stuff)
  • порча?

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


1) Да, IP-адрес может изменяться во время сеанса.

3) Нет, я не могу думать о каком-либо преимуществе безопасности "отслеживания изменений IP".

2) "динамический IP-адрес" просто противоположен " статическому IP-адресу:

a) с динамическими IP-адресами ("DHCP") сеть назначает адрес хосту (как правило, при загрузке).

b) со статическими IP, вы настроить хост с основные, неизменный адрес.

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

вот хорошая ссылка, которая может сделать различие между "статической" и "динамической" адресацией более четким:

http://compnetworking.about.com/od/workingwithipaddresses/qt/staticipaddress.htm