Я работаю над набором инструментов для безопасного входа в систему/портала, общий код не содержит SQL-инъекций, XSS и т.д. У меня есть много возможностей для остановки захвата сеанса.
- восстановить идентификатор сеанса для КАЖДОЙ страницы
- Сравнить IP-адрес пользователя с IP-адресом при входе в систему
- сравнить пользователя user_agent с агентом при входе в систему
- имеют короткие сеансовые тайм-ауты
и т.д.
Я сделал все, что мог, чтобы остановить захват, однако я все еще располагаю ситуацией, когда это возможно, и хотелось бы знать, есть ли у кого-нибудь идеи.
Представьте себе ситуацию, когда у вас есть 2 пользователя за брандмауэром, который делает SNAT/DNAT, так что обособленно от одного и того же IP-адреса. Они оба идентичные машины, поставляемые одним и тем же местом. Один подключается к сайту и входит в систему, а другой копирует файл cookie PHPSESSID и может просто украсть сеанс.
Это может показаться крайним примером, однако это очень похоже на мое место работы, все находятся за брандмауэром, поэтому он выглядит как тот же IP-адрес, и все машины управляются/предоставляются ИТ-командой, поэтому все они имеют ту же версию браузера, ОС и т.д.
Я пытаюсь думать о другом пути (стороне сервера), чтобы остановить захват или свести его к минимуму, я думал о токене, который встраивается в каждый URL-адрес (изменен для каждой страницы) и проверяется.
Я ищу идеи или предложения, если вы хотите предложить код или примеры, которые вам нравятся, но меня больше интересуют идеи или комментарии к моей идее.