никто не упоминает, что вы должны проверить, что сессия действительно действительна ... если вы просто проверите, что она установлена, вы можете, скорее всего, подделать ее и пройти.
Кроме того, чтобы хэшировать учетные данные в куки, я бы сначала зашифровал его на стороне сервера, а затем хэшировал. на всякий случай где-нибудь в будущем кто-то нарушит тип хеша. sha3-256 - ваш лучший выбор, поскольку он, как известно, не сломан и должен в будущем выдерживать многократное увеличение вычислительной мощности.
Что я обычно делаю, так это шифрую пароль и пользователя с использованием самого пароля пользователя в качестве ключа, таким образом, если вы также сохраняете их учетные данные при этом в своей собственной базе данных, даже сопровождающий сайта не сможет расшифровать его и украсть пароли. и любой дампинг дб будет иметь только некоторые метаданные. (вы также должны зашифровать имена пользователей ...)
Кажется, что это несколько упрощенно выглядит как «простой логин и пароль для пользователей», но на самом деле настолько простой, насколько это возможно, следует учитывать безопасность ваших пользователей, даже если это не публичный сайт ...
Итак, помните: