Данные в jsonwebtoken не перезаписываются
Я использую jsonwebtoken на своем сервере js узла, а внутри jsonwebtoken я сохраняю роль пользователя.
Поэтому каждый раз, когда он делает запрос, я просто должен проверить, указана ли в токене требуемая роль. Но могут ли люди изменить эту роль? Я знаю, что все могут видеть это, но я думаю, что никто не может изменить это без моего секрета, верно?
Конечно, я всегда проверяю, что jsonwebtoken правильно подписан. Как вы думаете, этот метод кажется хорошим? Извините, английский не мой основной язык
2 ответа
Если вы измените данные jwt и затем хешируете их с другой подписью, то ваш сервер узнает, что это фальшивый токен
также убедитесь, что вы используете https, чтобы ваши токены не были доступны для прослушивания.
если вы храните свой токен в файле cookie, убедитесь, что файл cookie используется только для http, чтобы предотвратить перехват
Также я рекомендую использовать токен csrf для предотвращения атак csrf
Я предполагаю, что вы храните JWT в Cookie или в LocalStorage на стороне клиента.
Итак, пользователь может удалить или изменить cookie, но он не может прочитать его без вашего секрета.
Поэтому, если он попытается обновить токен, он, вероятно, станет поврежденным и нечитаемым со стороны вашего сервера.
Если токен поврежден, вы, вероятно, захотите выйти из системы и перенаправить пользователя на страницу входа.