Опасно ли е поставянето на потребителското име и токена в маршрут на https страница?

Търся най-добрата практика и безопасен подход за работа със страница за подновяване на парола в SPA. Потребителят ще бъде пренасочен с потребителско име и временно означение от страницата за вход, когато паролата му изтече. Досега намерих няколко опции:

  • Поставяне на потребителското име и токена в низ на заявка като: /reset-password?username=test&token=jfF5$88F...
  • Поставяне на потребителското име и токена в URL параметър като: /reset-password/:username/:token

Други опции, които не се занимават с URL:

  • Поставяне в pushState. в моя случай с помощта на реакция-рутер-дом: history.push({ state: { username, token } })
  • Поставяне на Cookie или LocalStorage

Но основният ми въпрос е безопасно ли е поставянето на тези данни в URL адреса? Може ли Man-In-The-Middle да отвлече данните дори в https протокол?


person Emad Emami    schedule 24.07.2020    source източник
comment
да, бих използвал потребителското име като полезен товар в jwt заедно с друга информация   -  person Reza    schedule 24.07.2020
comment
@Reza Няма jwt токен, защото не беше успешно влизане. Токенът е временен токен   -  person Emad Emami    schedule 24.07.2020


Отговори (1)


Обикновено не поставяте тайни в URL адресите. Причината е, че всеки балансьор на натоварването или прокси по пътя има право да регистрира URL адреси поради причини за отстраняване на грешки. Не искаме нашите тайни да изтекат само защото са изтекли трупи.

Има едно изключение от това правило - когато тайната е еднократна. Когато е анулиран веднага след като е използван. Причината за това изключение е, че няма да има друг начин за предаване на тайни през напр. писма.

Ако HTTPS е направен правилно, никой не би трябвало да може да отвлече данните. URL адресът е част от HTTP полезния товар и ще бъде криптиран цял, ако това е, което ви интересува.

person Marek Puchalski    schedule 24.07.2020