Чи безпечно розміщувати jwt в url як параметр запиту запиту GET?


75

Чи безпечно вкладати jwt (веб-маркер json) в URL-адресу як параметр запиту запиту GET?

Відповіді:


86

Це може бути безпечно за таких обставин:

  1. JWT використовується лише одноразово
  2. jtiіexp претензії присутні в маркері
  3. приймач належним чином реалізує захист від відтворення за допомогою jtiтаexp

але у випадку, якщо він використовується як маркер, який можна багаторазово використовувати, наприклад, проти API, тоді надання його як параметра запиту є менш бажаним, оскільки він може потрапити в журнали та інформацію про системні процеси, доступні іншим, які мають доступ до сервера або клієнтська система. У такому випадку було б краще представити його як частину заголовка або параметра POST.

Крім того, використовуючи його в параметрах запиту, ви можете запустити обмеження розміру URL-адрес у браузерах або серверах; використання його в заголовку забезпечує трохи більше місця, використання його як параметра POST найкраще підійде.


13
Крім того, не навчені користувачі можуть скопіювати та вставити URL-адресу з маркером, що може призвести до в основному ненавмисного викрадення сесії.
Сірий

1
Якщо кінцевою точкою є REST, існує багато випадків, коли вам доводиться використовувати метод GET. Крім того, якщо запит на завантаження, ви навіть не можете використовувати ajax.
Стенлі Ло

1
Як щодо розумно коротких exp<2 хв. плюс друге переспрямування (після того, jwtяк програма була зібрана)? Друге переспрямування, щоб просто запобігти проблемам із копіюванням та вставленням. Якщо ваш браузер порушено, навіть заголовок не врятує вас від крадіжки вашого маркера.
Dave Jensen

1
Чому маркер повинен бути лише 1 раз?
Dave Hillier

12
Оскільки маркер, як параметр запиту, може потрапити до журналу сервера, журналів браузера або заголовків реферера, і хтось може захопити його звідти і спробувати використати повторно.
Ганс З.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.