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

Как правильно составить алгоритм безопасной авторизации?

Всем привет. Перерыл кучу сайтов в поисках примера безопасной авторизации на PHP, но так и не нашел ничего толкового (либо материал уже устарел).
Но все же набросал кое-какой алгоритм.. Знатоки, пожалуйста, подскажите, где его проблемные места и как их решить.
И так:
  1. Ввод пользователем логина и пароля
  2. Хеширование пароля на стороне клиента. Примерно так: sha1(sha1(password, login) + randomKey). randomKey генерируется случайно при каждой новой авторизации, для того, что бы передавать на сервер постоянно разный хеш (защита от перехвата).
  3. На сервер отправляем полученный хеш и randomKey
  4. Сверяем на сервере хеш клиента и и sha1(хэш_с_сервера + randomkey)
  5. Если авторизация успешна, то записываем в куки некий "ключ" сессии.

Далее, допустим по ключу 123 ($_SESSION['123']) мы будем получать необходимые данные о пользователе (логин, заход последний и т.д.)

Собственно, вот такой, не сложный алгоритм. Но вопрос стоит в этом: как защититься от перехвата сессий (привязка по IP спасает ровно до того момента, пока не сменится IP :( ).
И какие есть более глобальные проблемы, у такого алгоритма?
  • Вопрос задан
  • 1705 просмотров
Подписаться 5 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Stepik
    PHP (pro)
    2 недели
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
Может Вам что-то подобное реализовать :
https://en.wikipedia.org/wiki/Salted_Challenge_Res...
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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