@rinaz22

Как сделать безопасный «Запомнить меня» на сайте?

Всем привет. Нужно сделать функцию "Запомнить меня", чтобы пользователь не вводил каждый раз логин и пароль.
Знаю что такое можно реализовать с помощью cookie, но тут вопрос в безопасности со стороны пользователя.
Как предотвратить несанкционированную авторизацию на случи, если у пользователя украдут cookie? Как идентифицировать его, что куки используется не на другом устройстве?
Или может быть есть какой-то другой, более безопасный способ идентификации?
  • Вопрос задан
  • 171 просмотр
Решения вопроса 1
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
Сгенерировать сильно уникальный токен, что-нибудь вроде random_bytes(16), положить его в БД и в куки

> Как предотвратить несанкционированную авторизацию на случи, если у пользователя украдут cookie?

Никак. В принципе, вся безопасность современного веба завязана на предположении, что куки не украдут. В супер-важных приложениях, типа банковских, можно дополнительно проверять IP адрес, его подделать невозможно. И при смене адреса просить перелогиниться. Но в обычном приложении это будет скорее неудобством.

> Как идентифицировать его, что куки используется не на другом устройстве?

Ну можно по идее запоминать устройство, по user agent. Но это придется отдельно хранить авторизации на всех устройствах. Но если покрадут куки, то уведут и юзер агент.

Причем все это относится и к обычной авторизации, без функции "Запомнить меня". Так что если эти вопросы до сих пор вас не волновали, то и сейчас по идее не должны.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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