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

Насколько безопасна реализация запоминания пользователя?

Пытаюсь на php реализовать функцию запоминания пароля. Допустим, при логине сервер генерирует токен и через куки отправляет браузеру. Теперь при последующем посещений сравниваю токен из куки и из базы данных.
Есть небольшой шанс, что сайт распознает какого-то злоумышленника как другого пользователя, ведь злоумышленник может сколько угодно раз менять токен из куки.
  • Вопрос задан
  • 218 просмотров
Подписаться 2 Простой 11 комментариев
Решения вопроса 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
Требуемый параметр называется "криптографической стойкостью".
Большая часть самопальных решений "из букв и цифр" такой стойкостью не обладает.
Как не обладает ей и uuid v4.

На данный момент рекомендуемым решением является использование функции random_bytes()
$token = bin2hex(random_bytes(24));
Далее токен пишется в БД и в куки пользователю.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Fragster
@Fragster
помогло? отметь решением!
ну значит нужно отдавать не id а uuid v4 (это пример, можно любой другой рандом, чем больше, тем лучше), а id хранить в таблице на стороне сервера, причем можно еще делать отдельную привязку к ip / useragent или времени последнего запроса (например ip (или диапазон) может измениться в течении суток-двух, у useragent версия увеличиться на 1, иначе сессия с таким id невалидна)
Ответ написан
Ваш ответ на вопрос

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

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