Извините за вопрос новичка!Я делаю небольшой сайт, который позволяет пользователям создавать свои собственные учетные записи.Это не банковская система, и вряд ли кто-то захочет ее взломать.Тем не менее, я пытаюсь сделать его достаточно безопасным, так как существует множество скучных сценариев.
Может ли кто-нибудь описать базовый рабочий процесс для пользователя, который входит в систему и имеет набор файлов cookie, который будет держать их в журнале?в течение 30 дней?
На данный момент у меня есть следующее:
- Проверка и санитарная обработка введенных данных.
- Проверка предоставленных учетных данных по хешированному паролю bcrypt в БД.
- Если верно, вызовите функцию «Вход».
Функция входа:
a.Удалите все данные сеанса из БД с идентификатором пользователя (таблица с двумя столбцами: SessionString и UserID).
b.Добавить новые данные сеанса в БД (новая случайно сгенерированная строка и идентификатор пользователя).
c.Записать случайно сгенерированную строку и идентификатор пользователя в cookie.
d.Установите $_SESSION("UserID")
с помощью $userID
.
Но хотя два куки создаются и записываются, $_SESSION("UserID")
остается пустым ... Я предполагаю, потому что я не могу писать в $_SESSION
в любое время, когда якак?
И даже если это исправлено, как я могу использовать данные, хранящиеся в cookie, для входа пользователя?Я предполагаю, что я не хочу идти в БД при каждой загрузке страницы.И все равно мне потребуется создать объект базы данных, чтобы проверить, в порядке ли учетные данные в cookie.Это правильный путь к этому?
Еще раз извинения за вопрос новичка!
ОБНОВЛЕНИЕ:
Да, я понимаю разницумежду $_SESSION
переменными и куки.У меня также есть session_start()
вверху каждой страницы (сразу после <php
без пустых строк).$_SESSION("UserID")
просто остается пустым.
Вот код в верхней части страницы:
<?php
session_start();
if(!isset($_SESSION['initiated'])) {
session_regenerate_id();
$_SESSION['initiated'] = true;
}
Спасибо за помощь.