Я определенно не эксперт в области безопасности, но я недавно внедрил инструмент управления пользователями и сделал следующее.
- Не используйте шифрование, оно медленное и большую часть времени для простой реализации - просто трата времени.
Вот что вам нужно хранить насервер - для аутентификации каждого запроса.
- UserId (очевидный)
- CookieHash (сделан из userId, некоторого секретного секретного ключа и случайно сгенерированного номера шифрования)
- LastLogin
- SessionRenewed (полезно, когда нужно отменить чей-то сеанс, например, обновлять cookieHash каждые 10 минут, в противном случае выйти из системы)
- LastIP
Что я хранюв cookie следуют
Как использовать эту базовую защиту
Просто, когда пользователь входит в систему, вы проверяете имя пользователя/ пароль и т. д. (как обычно) Если все в порядке, войдите в систему пользователя и сгенерируйте новый cookiehash и заполните значения, указанные выше.
Каждый запрос проверяет UserId на его хеш.Если кто-то дал UserId = 4, но хеш-код не совпадает, тогда автоматически отбросьте сеанс и перенаправьте пользователя на экран входа.Возможный журнал полезен, чтобы увидеть, как часто люди пытаются поиграть с вашей тяжелой работой.
Надеюсь, это поможет.