Может ли хакер выдать себя за пользователя, украдя маркер сеанса и затем подделав пользовательский агент, IP и другие детали? - PullRequest
0 голосов
/ 18 января 2020

Обычная практика, которой придерживаются при аутентификации и последующем отслеживании сеанса, включает использование идентификатора сеанса, полученного от клиента, и последующее сравнение пользовательских данных, хранящихся в базе данных, для совпадения с идентификатором сеанса, данными пользовательского агента, IP et c. Теперь, если хакер получает доступ к токену сессии и угадывает или извлекает другие детали, может ли он выдавать себя за пользователя? Какие шаги мы можем предпринять, чтобы предотвратить такие атаки?

1 Ответ

1 голос
/ 18 января 2020

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

Так что да, получение токена сеанса позволяет злоумышленнику выдавать себя за пользователя.

Чтобы предотвратить такие атаки, идентификаторы сеанса необходимо генерировать с помощью безопасных генераторов случайных чисел (или, что еще лучше, из реальных случайных источников, но это становится проблематичным c в масштабе), и их необходимо защищать при передаче (https), а также при хранении (файлы cookie httpOnly). Конечно, иногда другие аспекты одинаково важны, поэтому могут быть достигнуты различные компромиссы (например, сохранение токена в скажем localStorage, но только недолговечного, и сохранение токена refre sh в httpOnly cook ie для идентификации провайдер).

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

...