Я разрабатываю систему входа на основе PHP. Каждый пользователь имеет идентификатор (номер) и пароль, который хранится как соленый хеш.
Я могу выяснить, является ли логин успешным или нет, но теперь мне нужно хранить эту информацию где-нибудь (так что пользователь не будет окончательно выходить из системы).
В прошлом я играл с переменными $_SESSION. Однако они, кажется, удаляются, когда пользователь покидает браузер, что нежелательно. Кроме того, я не могу "предположить", что пользователь не попытается обмануть систему, поэтому она должна быть безопасной.
Итак, вот мои вопросы:
- Должен ли я использовать
$_SESSION
или$_COOKIE
? Каковы основные преимущества каждого из этих подходов? - Как установить флажок "Запомнить меня"?
- Какая информация должна храниться в переменной session/cookie?
Обратите внимание, что в этом конкретном вопросе не рассматриваются проблемы безопасности базы данных.
Что касается номера 3, я имею в виду:
- Должен ли я хранить идентификатор и хешированный пароль пользователя в файле cookie/сеансе или
- Должен ли я хранить идентификатор и недопустимый пароль пользователя в файле cookie/сеансе или
- Должен ли я хранить "SessionID" и пароль (хэшированные или не хешированные?) или
- Должен ли я хранить "SessionID", "ID" и пароль (еще раз, хэшированные или не хэшированные)?
Я хочу, чтобы мой сайт был максимально безопасным, но эффективным и удобным для пользователя. Если используется подход на основе SessionID, я также хотел бы получить некоторое объяснение относительно его хранения в базе данных.
Заранее благодарю
РЕДАКТИРОВАТЬ: ответы Эрана и Брайана, как представляется, являются тем, что мне нужно. К сожалению, я могу отметить только один из них, как принято. Я попытаюсь выполнить и реализовать, чтобы узнать, какой из них более полезен.