Я новичок в ReST и я реализации RESTful проверки подлинности маркеров, пытаясь использовать Django-Rest-Framework JWT, в мобильном веб-приложение стандартным способомStateless Токен Auth безопасности
- клиент отправляет учетные данные
- сервер проверяет и отправляет токен и дату истечения срока действия. Удаляет маркер из БДА
- клиент вызывает обновление маркеров, когда пользователь делает запрос и токен истекают в
- на запросе клиента, сервер проверяет подпись лексемы
- на истек пользователь лексем журналов мобильных приложений вне. Мобильные приложения проверяет действия не сервер
я решил сделать мобильное приложение проверить срок годности, так как я прочитал, что это RESTful, а сервер проверки его требует, чтобы хранить маркеры, которые не RESTful
у меня есть несколько вопросов безопасности, связанных с вышеуказанной реализацией:
1) Не получает ли один токен, чтобы злоумышленник имел полный доступ к логину пользователя, независимо от того, сколько обновляется токенов?
Даже если это связано с https, скажем, каким-то образом маркер был извлечен злоумышленником, то есть прокси-сервер ssl-перехватчика. Очевидно, что мобильное приложение не позволит им войти в систему, но они могут захватывать данные, вызывая api с помощью токен через любой HTTP-клиент.
2) Какова цель обновления световых жетонов, если сервер считает все их действительными?
В этом нет никакой передовой безопасности. Однако, если сервер сохранил токены и сохранил даты истечения срока действия, полный компрометация пользователя будет остановлена, но не на компромисс между сеансами. Очевидно, что с помощью перехватчика SSL они все равно могут скомпрометировать пользователя, но нужно будет ловить каждый логин. Однако эта реализация не является пересмотренной.
Как именно вы можете отклонить токен JWT, когда пользователь изменил свой пароль (или любое другое поле, используемое для генерации JWT)? Проверка JWT выполняется только из данных в JWT, и поскольку JWT не истек, его подпись будет действительна, даже если был изменен пароль пользователя в вашей базе данных. –
@ LaurynasMališauskas, когда вы получаете токен от клиента, который имеет хешированный пароль в нем при отправке, просто проверьте, что хеш с хэшем пароля в вашей базе данных, если они не совпадают, возвращает ошибку клиенту. –
Это не совсем так, как JWT, поскольку он должен быть самозаверяющим токеном. Однако я сделал некоторые исследования, и кажется, что многие люди используют его так же, как будут использоваться непрозрачные жетоны. –