Українська

Інструменти розробника · JWT декодер

JWT exp, iat і nbf: NumericDate Є Seconds, Не Milliсекунди

· Як працює

Опубліковано ToolAcre · Редакція журналу

свінгери частампи декупація

JWT NumericDate секунди вирівнюється з мілісекундним браузером
Головна ToolAcre векторна ілюстрація

JavaScript дає вам мілісекунди і JWT захочеться секунди, так що часові штампи не виявляються фактором тисяч. Цей пост пояснює NumericDate і як правильно читати три рази.

Токени, які ніколи не закінчуються або закінчуються, перш ніж вони приїдуть, — два симптоми помилки одиниць

Помилкова помилка викликає драматичні симптоми. Постачання JavaScript мілісекунди, де виробник токенів очікує епох секунд, може відштовхуватися від вибуху тисяч років. Подивитися значення секунд знову може розмістити його біля 1970, зробивши новий токени, виведений до першого законного запиту.

Використовуйте розширений, обертається або явно синтетичний токен для цієї діагностики. Життєвий ведмедик є критичним, і копіювання його в будь-який загальний веб-сторінку створює окремий ризик обробки навіть при декодуванні є місцевим. Якщо на робочому токені було відкрито, обертається або відроджує його, а не лікуючи браузер-історичний очищувач як ремедіація.

Декодер допомагає виставити масштаб шляхом відображення нумеричної претензії ISO читання. Цей дисплей є діагностичним тільки. Атака може писати будь-який `exp`, `iat` або `nbf` номер в невизнаний або зароблений платіж, тому перетворений час має повноваження тільки після перевірки підпису та політики в іншому місці.

НумеричнийДат в RFC 7519 — секунди з Унікса епоха, як JSON кількість, з дробами дозволено, але рідко використовується

JWT часові скарги використовують нумеричне JSON кількість записів секунд з епоху Unix. Фракційні номери можуть представляти підсекундні позиції, оскільки реалізація багатоповерховищує значення 1,000 перед створенням дати. Це не округлює дійсний кінцевий номер до цілого першого.

ToolAcre Контакти `exp`, `nbf`, `iat`, `auth_time` і `updated_at` як часові поля для відображення. Тільки перші три – серед своїх зареєстрованих описів. Неоднорідні, нескінченні або недійсні результати Дата не вдається, а не продаються як значущі часи, запобігаючи рядку, такі як «ложка» від masquerading як час.

Date.now() мілісекунди — мілісекунд JavaScript звичаї, що виробляє далекі вироби

`Date.now()` повертає мілісекунди, в той час як значення NumericDate виражається за секундами. Продюсер відмовляється від годинника браузера, тому потребує явного перетворення масштабу, зазвичай ділиться 1,000 перед застосуванням власної політики округлення. Про нас ToolAcre читати шлях виконує зворотне багатокористування виключно для відображення.

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

Зберігайте конвертацію блоку, видиму в перегляді коду. Тринадцятимісне значення в `exp` є корисною ознакою попередження, але кількість цифр не перевіряється і не може замінити договір виробника. Декодер спробує надати будь-яку скінченну нумеровану претензію JavaScript Дата може представляти; вона не мовчить перезавантаження мілісекундів за секундами.

exp, nbf і iat — закінчується, не-before і виданий, і як виверження стосується кожного

`exp` іменує час, після чого вивержувач не повинен приймати токени під його політикою. `nbf` імена крайової перед якою не повинна бути прийнята. `iat` облік часу видачі. ToolAcre мітки ці значення і порівняння тільки `exp` і `nbf` з поставним годинником.

Повернути стан `expired` коли декодований термін дії раніше, ніж зараз, `future` коли зараз не пролягає, і `past` для інших випадків, що відображаються. Ці мітки є спостереження за навантаженням арифметичне. Вони не є автентифікаційним рішенням і не оцінювати емітента, аудиторію, ключ або підпис.

Перепади годинників і п'яти належать до виверизатора; цей декодер визначає ні

Нарис просив скільки годинного шава розумно, але ні JWT конфігурація декодера, ні виконання визначає в'язкість. Що число належить до виверизатора і його вимог до розгортання. Винахідка за замовчуванням тут буде перетворена оглядова стаття в недокументовану політику безпеки, тому цей розділ навмисно не забезпечує.

Якщо послуга відхиляється від токени поруч з обмеженими, порівнювати годинник служби, емітента і налаштовувати політику виверження з використанням перевірених колод. ToolAcre не допускаючи вікна. Його результат може відрізнятися від сервера, який навмисно застосовує в'язкість, навіть коли одночасно парсе однакове число.

Зароблений приклад — перетворює значення вибірки до людського часу і перевіряючи його проти ір

Застосування синтетичного навантаження містить `iat: 1717243200` і `exp: 1717246800`. Множення 1,000 давати ISO миттєвий `2024-06-01T12:00:00.000Z` і `2024-06-01T13:00:00.000Z`. Відстеження значень сирих секунд призводить до одногодинного інтервалу без перемішування мілісекундів браузера в розрахунок.

Друга діагностична фіксація може використовуватися `iat: 1700000000` і `exp: 1700003600`; різниця знову 3,600 час. Задоволення кожного номера в часовий конвертер з вибраними секундами. Вибір мілісекундів замість переміщення дисплея до січня 1970, яка демонструє неправильне тлумачення без необхідності живого токена.

Що arithmetic описує, що говорить про завантаження. Не показує, що емітент вибрав ці значення або що за годину підходить для будь-якого додатка. ToolAcre досить друкує цифри, генерує UTC ряди і можуть викликати закінчення старого відносно сьогодні; вивержувач повинен самостійно автентифікувати і виконувати власні правила прийняття.

Що це не криється - чи приймається конкретний сервер, який залежить від його годинника і в'їзду; декодер показує значення, а не вирок

Не можна передбачити, чи приймається конкретний сервер. Сервер може використовувати різні годинники, налаштовану толерантність, сувору претензію schema або додатковий емітент і перевірка аудиторії. Заборона сигналу можна відхиляти токени, що показує NumericDates, відмінно виглядають.

Невелика толерантність до виводу не може відремонтувати фактор-на-одинному і неправильному. Якщо увімкнено налаштування, тестові значення лише всередині та зовні, що обмежені за секундами. Почати журнали можна без запису токену, в той час як метрика перевірки повинна відрізнити, передчасні і недійсні наслідки.

Поперечно, майбутній термін дії не робить неперевершений токен дійсним. Помістіть таблицю часу як спосіб, щоб помітити, швидше за все, помилки блоків і збирати докази для відбілювання. Актуальний вирок відноситься до логів сервера або контрольної перевірки з очікуваним ключем та політикою, ніколи не в панелі декодування.

Поруч: читати претензії, зробити арифметичне — арифметичне ToolAcre JWT decoder показує exp, iat і nbf так ви можете перевірити самі одиниці

Читання претензій і виконання масштабу арифметично свідомо: NumericDate секунди стають JavaScript мілісекунди тільки на попередню межу. ToolAcre робить, що багатозастосування явно в джерело і відображає результат ISO значення, в той час як ігнорування неправильних типів часу замість того, щоб здогадати, що їх авторів призначено.

Зберігати різницю безпеки однаково. Анжела `exp` дисплей не є експлуатацією, `nbf` дисплей не здійснюється контроль, і `iat` не є доказом видачі. Після перевірки викидного токену використовуйте перевірений вивержувач, щоб автентифікувати його і застосувати реальну цілодобову політику обслуговування.