@Anonymous85966

Насколько защищены файлы Cookie от кражи?

На сайте имеется система авторизации. От паролей я решил отказаться в угоду безопасности. На странице авторизации имеется поле для ввода email. При вводе email и отправке запроса на сервер на этот email отправляется код подтверждения, который представляет собой 6 значное число. Пользователя перебрасывает на страницу с полем ввода, где требуется ввести код подтверждения. Если пользователь вводит неверный код, то ключ авторизации ему не выдается и страница просит ввести код заново. Если кто-то вводит неверный код больше 10 раз, то аккаунт блокируется. Если код введен верно, возможны две ситуации. Если пользователь на странице авторизации не поставил галочку в поле Запомнить меня, то в сессию сохраняется объект класса User, через который можно получать все данные пользователя, которые нужны для пользования сайтом(id, email и тд). В общем, пользователь авторизирован, но после закрытия браузера сессия будет уничтожена. Если пользователь на странице с авторизацией поставил галочку в поле Запомнить меня, то помимо сессии в куки файл сохраняется дополнительный ключ авторизации. Зачем он нужен? Он нужен для авторизации после уничтожения сессии. Ключ авторизации представляет собой код подтверждения(отправленный на почту), который при помощи конкантенации склеивается со строкой-солью(хранится не сервере, никто не знает значение). Соль нужна для того, чтобы сторонний пользователь вручную не создал куки с ключом авторизации, который просто подобрал(без соли ключ-это просто число, уйдут секунды на его подбор). Далее склеенная строка зашифровывается при помощи необратимого шифрования. Этот ключ сохраняется в базу данных(в ячейку пользователя) и в куки файл. Теперь, после закрытия браузера сессия уничтожится, а куки с ключом останется. Далее, при входе на сайт, на каждой странице сайта происходит извлечение хэша из куки файла и сравнения его с хэшем в базе данных каждого пользователя. Если у кого-то из пользователей хэши идентичен, то устройству с куки файлом выдается сессия с данными пользователя, после чего пользователь авторизован. Также куки файл нужен для функции Выйти со всех устройств, при активации которой из базы данных удаляется ключ авторизации. После этого, как только пользователь с куки файлом, в котором находится ключ доступа, обновляет страницу, активируется функция сравнения ключа в базе данных и ключа в куки. Если ключи не совпадают, то сессия пользователя удаляется(произведен выход из аккаунта). Требуется повторная авторизация. Проблема системы в том, что если сторонний пользователь получит куки с ключом авторизации, то он получит доступ к аккаунту. В связи с этим возникает вопрос, насколько защищены файлы cookie от воровства?
  • Вопрос задан
  • 521 просмотр
Пригласить эксперта
Ответы на вопрос 1
Ranwise
@Ranwise
изобрели этакую 2х факторную авторизацию, только теперь юзеру нужно сходить на почту и скопировать ваш пароль, на мобилке это очень удобно, или еще раз вбивать пасс к почте
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы