В моем веб-приложении есть секретное место , разрешено использовать только некоторым людям.Когда пользователь входит в мое секретное место, я стараюсь собрать от него как можно больше информации, объединить ее, хэшировать и отправить в виде файла cookie.Такая информация, как: пользовательский агент, IP-адрес, пароль пользователя, плюс еще несколько ...
Когда клиент запрашивает что-либо, я регенерирую все эти вещи, хеширую их и сравниваю с куки-файлом, который отправляет клиентme.
Если какой-то парень украл куки, у них, вероятно, будут другие Агенты пользователя от парня, который легально вошел в систему, и хэши не будут совпадать, не впуская его.
Если некоторыеБолее старый мудрый парень подделывает все заголовки http, я увижу несоответствие IP-адреса и совпадение хэша ... не впускаю его.
Там, где моя проблема, что я должен делать, если мойзаконно вошедший в систему клиент теряет подключение к Интернету и восстанавливает его с другим IP-адресом, поскольку его / ее провайдер сдает в аренду динамические IP-адреса.Мой текущий алгоритм скажет: «Ага! Это злоумышленник! Закройте эту сессию!».
Это секретное место лучше, если оно не будет разрушено для действительных пользователей, и, поскольку по какой-то причине подключение к Интернету прерывалось в последние пару недель, мои пользователи считают неудобным тот факт, что приложение требует от них повторного входа в системукаждый раз, когда их IP-адрес меняется.
Должен ли я отказаться от проверки IP-адреса?