защищенный API с помощью JWT

#node.js #api #jwt #token #refresh

#node.js #API #jwt #токен #обновить

Вопрос:

В настоящее время я изучаю, как работает JWT, и я создаю API. Я создал функцию промежуточного программного обеспечения, поэтому для каждого вызова защищенного маршрута вызывается промежуточное программное обеспечение и анализируется доступ. Я передаю токен в заголовке HTTP-запроса в поле авторизация, но вот мой вопрос :

  • кто-нибудь может посмотреть токен доступа в заголовке HTTP-запроса? потому что, если это так, это действительно небезопасно, нет? любой может посмотреть доступ к своему другу и сделать запрос api с помощью?

  • Я уже создаю функцию обновления, чтобы получить новый токен доступа по истечении срока его действия, но в моем /refreshroute нет промежуточного программного обеспечения, потому что срок действия accessToken истекает при вызове refreshroute. Таким образом, /refreshroute также небезопасен и возвращает новый accessToken ….

пожалуйста, помогите мне, я действительно хочу узнать, как это работает…

Ответ №1:

Это зависит от типа соединения, с помощью которого вы отправляете запрос:

  • Если запрос отправляется с использованием SSL-шифрования (т.Е. HTTPS), то вам, вероятно, не придется беспокоиться о том, что кто-то просматривает заголовки, поскольку надежное шифрование не позволит никому другому просмотреть запрос, кроме получателя (сервера).
  • Однако, если нет шифрования SSL, то полезная нагрузка, отправляемая на сервер, подвергается воздействию и открыта для посторонних глаз и уязвима для атак MITM.

Комментарии:

1. Привет, Арпан! Спасибо за ваш ответ 🙂 и основная часть запроса также защищена в https? Поскольку, когда я выполняю запрос post для обновления моего токена доступа, я передаю refreshToken в теле запроса, защищен ли он также в HTTPS?

2. И чтобы иметь SSL-сертификат, я должен заплатить? Поскольку самоподписанный SSL-сертификат не работает каждый раз (например, он не работает с postman)

3. Есть способы получить бесплатные, например, от letsencrypt. Кроме того, некоторые облачные сервисы предоставляют его бесплатно, и в некоторых случаях настройка практически не требуется

4. Да, тело запроса будет зашифровано.