Я хотел бы создать простую систему входа / регистрации пользователей с использованием PHP и mysql. Мне не нужно получать никакой информации, кроме той, которая необходима пользователю для входа и выхода. Я хочу убедиться, что система безопасна.
В настоящее время я понимаю, как она должна работать:
Регистрация
Пользователь вводит свой адрес электронной почты, пароль и пароль подтверждения.
Сценарий PHP проверяет совпадение паролей и правильность адреса электронной почты, которого еще нет в базе данных.
Он хеширует пароль вместе со случайной солью и сохраняет соль и полученный хешированный пароль в базе данных. (Подходит ли для этого функция php md5? Я не совсем уверен, как эта часть работает.)
Сохраните код подтверждения электронной почты в базе данных и отправьте на указанный адрес электронной почты ссылку на веб-сайт, содержащий этот код для проверки?
Вход в систему
Пользователь вводит свой адрес электронной почты и пароль.
Сервер просматривает электронную почту в базе данных и извлекает соль. Затем хеширует соль с паролем, который только что предоставил пользователь, чтобы проверить, совпадает ли он с паролем в базе данных.
Как мне сохранить сеанс после входа в систему. С сеансом PHP? Печенье? Что должно храниться в cookie для запоминания пользователя между посещениями?
Я просто хотел бы получить некоторую проверку того, что описываемый мной процесс является точным и безопасным способом регистрации / входа в систему. Также, какие хорошие руководства с дополнительной информацией.