@vlad681
Frontend разработчик

Как защитить данные при передаче и хранении в веб-приложении от перехвата/изменения?

Допустим, в приложении будет аутентификация, различные права у пользователей на доступ к тому или иному разделу приложения, изменение данных. Как это реализовать? Я прочитал про jwt, про токен в заголовке. Я не понимаю структуру БД, которая будет использоваться для авторизации. Насколько часто нужно сверять куки? Нужны ли куки? Я не нашел нужную мне информацию, у меня в голове каша. Сейчас все мои пет-проекты общаются голыми запросами по http. Я нуждаюсь в вашей помощи, буду рад любой ссылке по этой теме. Желательно пример кода: вот здесь frontend делает это, а вот что делается со всем этим на backend (желательно что-то из MERN,MEAN).
  • Вопрос задан
  • 2165 просмотров
Решения вопроса 2
@vetsmen
Кратко и понятно о JWT
После первого логина, клиенту возвращается сгенерированный сервером JWT. При каждом следующем запросе, клиент должен передавать JWT установленным API способом (например, через заголовок или как параметр запроса). Сервер декодирует header и payload и проверяет зарезервированные поля. Если все в порядке, по указанному в header алгоритму составляется подпись. Если полученная подпись совпадает с переданной, пользователя авторизуют.

В добавок к этому могу дополнить следующие шаги: мы удостоверились, что пользователь авторизован, и имеем на сервере payload (Это такой объект, в котором содержится все необходимые нам данные: userid и прочие. Формировали мы его тогда, когда генерировали наш JWT и отдавали его клиенту).
Далее делаем все, что душе угодно. К примеру, берем из payload userid пользователя, ищем его в БД, в ней уже смотрим права пользователя, и разрешаем или запрещаем какие-то действия.

Но есть одно но: если кто-то получит secret_key с сервера, считайте, что он получит доступ ко всем аккаунтам приложения.
Ответ написан
boratsagdiev
@boratsagdiev
Посмотрите два видео: теория и проблемы JWT от Ильи Климова. Все станет чуток понятнее :)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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