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