Задать вопрос

PHP сессии и авторизация

Здравствуйте, сделал авторизацию в PHP.
В начале каждого файла инклудится такой код:

session_start();
session_regenerate_id();


Теперь хочу сохранить id пользователя в сессию и в будущем проверять: если эта переменная задана, значит пользователь авторизирован и можно обращаться в базу по этому айдишнику.

Насколько такое поведение безопасно. Можно ли как-то на клиенте у себя "передать" в сессию id другого пользователя?
  • Вопрос задан
  • 5548 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 1
ScorpLeX
@ScorpLeX
Сессия это хеш который хранится в куках у пользователя, при обращение пользователя к скрипту, пхп сверяет хеш и берет из файла данные этой сессии.
В общем ответ: безопасно.

Только вот зачем вы делаете session_regenerate_id(); не понятно, оно не нужно.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
mannaro
@mannaro
Умею профессионально гуглить
Да, это безопасно, так как

Сессия это хеш который хранится в куках у пользователя, при обращение пользователя к скрипту, пхп сверяет хеш и берет из файла данные этой сессии.


Но, советую проверять IP пользователя, дабы хоть немного защититься от подмены сессий.
И да, session_regenerate_id(); совсем не нужно.

session_start();
$ip = $_SESSION['userIP'];

if (!$ip) {
    $_SESSION['userIP'] = $_SERVER['REMOTE_ADDR'];
} elseif ($ip != $_SERVER['REMOTE_ADDR']) {
    session_destroy();
    session_start();
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы