@lexstile

Как правильно сделать авторизацию на сайте?

Сейчас при успешной авторизации создаю токен, записываю в базу (разный при каждой авторизации) и в куки, далее просто сравниваю из базы и из куков (без хеширования и тому подобного). Думаю, что так делать не стоит с точки зрения безопасности.
Добавлю, что авторизация через API, поэтому без пароля.
Как сделать ее более-менее безопасно?
P.S. думал насчет хеширования, но не особо понимаю:
1. В базе храним хеш или токен? (Если хранить хеш, какой смысл от хеширования? Думаю - чистый токен.)
2. В куках храним хеш или токен? (тут, думаю, хеш)
3. Сравниваем хеш из куков с хешем токена из базы?
Поможет ли данная процедура повысить безопасность или нет? (Сравнивая с текущей, описано выше)
  • Вопрос задан
  • 96 просмотров
Решения вопроса 1
@DamskiyUgodnik
Я бы сделал так:
1. Авторизуем пользователя
2. Выдаём ему токен (в cookies) и пишем его в базу как активный
3. Сверяем токен из cookies с токеном из базы (при запросах)

На сколько я знаю, у vk работает примерно по такой же схеме (по крайней мере внешне выглядит так).

Если хочется ещё секурней сделать, можно ограничить сессию по времени (точнее токена в базе) + сверять браузер + ip (если меняется, разлогинивать путём удаления токена из базы). Но тут уже могут быть проблемы у пользователей с динамическим ip. Тут уже надо смотреть что важнее, безопасность данных или удобство пользователя.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
27 апр. 2024, в 19:58
2500 руб./в час
27 апр. 2024, в 19:48
10000 руб./за проект