1. Привяжите идентификатор сессии через
fingerprint ("отпечаток" клиента) к клиенту (браузеру), захешируйте (
никакого шифрования!) через серверную "соль" и сохраните на клиенте в куках.
2. Затем, проверяйте этот идентификатор при смене IP-адреса внутри этой сессии, запросив реальный "отпечаток" и его хеш из куков, и проверьте то, что сохранено в сессии на стороне сервера:
несовпадение - это чужой! ;)Итог: Если кто-то подменит куки,
он никак не узнает реального "отпечатка" клиента и ничего не сможет сделать с украденными куками с чужим аккаунтом.