Я создал систему входа в систему, используя сеансы PHP.
Вот как это работает:
1.) Когда пользователь входит в систему (с действительной информацией для входа):
Их информация ( имя пользователя
и пароль
) сохраняется в сеансе вместе с некоторыми другими битами информации:
Срок действия
: это всего лишь 5 минут, добавленных к текущему времени (поэтому, если пользователь входит в систему в 22:30, время истечения срока действия будет 22:35).
2.) При просмотре каждой страницы авторизованного пользователя:
Сессия проверяется на наличие. В противном случае пользователь перенаправляется на страницу входа. Если сеанс действительно существует, он затем проверяет время истечения
и сравнивает его с текущим временем
. Если время истечения
больше, чем текущее время
(пользователь был неактивен более 5 минут), то его данные пользователя (в сеансе) проверяются (по сравнению с данными в базе данных ) и сеанс Expiretime
обновляется, но если время истечения
меньше, чем текущее время
, он не будет проверять какие-либо детали, обновляет expire time
сеанс и позволит пользователю продолжить. Я сделал это, чтобы предотвратить постоянные запросы к БД для экономии полосы пропускания.
Таким образом, как только пользователь успешно вошел в систему, его имя пользователя и пароль больше не будут проверяться в БД, пока они либо не станут неактивными (остаются на одной странице) более 5 минут, либо не выйдут из системы.
ЗАБЫЛИ что-то упомянуть, ребята:
Срок действия сеанса на самом деле называется expire_time_unique_characters
( $ _ SESSION ['expire_time _'. $ Unique_nu]
), что означает, что злой человек также должен будет найти $ unique_nu
при подделке сеанса ...
Я просто чувствую, что это не очень безопасно.
Кроме того, проект с открытым исходным кодом (люди могут видеть исходный код), так что здесь возникает еще больший риск ...
вы, ребята, можете дать мне обратную связь?
Спасибо