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

    @vetsmen
    Кратко и понятно о JWT
    После первого логина, клиенту возвращается сгенерированный сервером JWT. При каждом следующем запросе, клиент должен передавать JWT установленным API способом (например, через заголовок или как параметр запроса). Сервер декодирует header и payload и проверяет зарезервированные поля. Если все в порядке, по указанному в header алгоритму составляется подпись. Если полученная подпись совпадает с переданной, пользователя авторизуют.

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

    Но есть одно но: если кто-то получит secret_key с сервера, считайте, что он получит доступ ко всем аккаунтам приложения.
    Ответ написан
    1 комментарий