Source
QA Co-pilot | Хакерський набір: Як читати JWT-токени без сторонніх сайтівПривіт, екі...
38 Views/Reach
2025-12-15 08:07
Message №129
🔑 Хакерський набір: Як читати JWT-токени без сторонніх сайтівПривіт, екіпаж!Ви робите запит в Postman, а у відповідь — 401 Unauthorized. Чому?
1️⃣Токен прострочився 5 хвилин тому?2️⃣Вам дали токен з правами Read-Only, а ви намагаєтесь зробити POST?3️⃣В токені зашитий не той User ID?
Токен (JWT) — це не абракадабра. Це просто Base64-кодований JSON. Його можна прочитати. Більшість йде на сайт jwt.io, вставляє туди токен і дивиться. СТОП! 🛑 Вставляти робочі токени (особливо з продакшну) на чужі сайти — це грубе порушення безпеки.Давайте зробимо свій безпечний декодер прямо в консолі браузера за допомогою AI.Практичний кейс: Вам треба миттєво дізнатися, коли закінчується життя токена (поле exp) і яка там роль.✨ Готовий промпт "JWT Decoder":Виступи в ролі Security Engineer.Напиши мені JavaScript-функцію для консолі браузера, яка парсить **JWT токен**.**Вимоги:**1. Функція приймає рядок токена.2. Вона декодує другу частину токена (Payload).3. Виводить вміст у зручному вигляді (console.table або JSON).4. **Важливо:** Якщо в токені є поля `exp` (expiration) або `iat` (issued at), перетвори їх з Unix Timestamp у читабельну дату (Human readable format).Код має працювати без зовнішніх бібліотек.
✅ Результат від AI (зберігаємо в Snippets):function parseJWT(token) { try { const base64Url = token.split('.')[1]; const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/'); const jsonPayload = decodeURIComponent(window.atob(base64).split('').map(function(c) { return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2); }).join('')); const data = JSON.parse(jsonPayload); // Конвертуємо дати ['exp', 'iat', 'nbf'].forEach(field => { if (data[field]) { data[field + '_readable'] = new Date(data[field] * 1000).toLocaleString(); } }); console.table(data); } catch (e) { console.error("Невалідний токен!", e); }}
Як це використати?
1️⃣Збережіть цей код у сніпети (ми вчили це вчора 😉) або просто вставте в консоль.2️⃣Напишіть: parseJWT("ващ_довгий_токен_eyJ...").3️⃣Дивіться в табличку! 🔹role: "admin" (Ок, права є). 🔹exp_readable: "15.12.2025, 10:00:00" (Ага! Він протух годину тому).
Висновок: Ви діагностуєте проблеми авторизації за секунди, не передаючи дані третім сторонам. Це професійний підхід до безпеки.А ви користуєтесь онлайн-декодерами чи довіряєте тільки собі? 👇