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

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

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

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

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

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽