Command Palette

Search for a command to run...

מפ

מפענח JWT

פענח כותרות ומטענים של JWT, בדוק תביעות ובדוק את פקיעת האסימון

מהו מפענח JWT?

מפענח JWT מפצל אסימון אינטרנט של JSON לשלושת הקטעים המופרדים בנקודות שלו, base64url-מפענח את הכותרת והמטען, ומציג את שניהם כ-JSON בפורמט. JWTs אינם מוצפנים - ה"קידוד" הוא רק base64url, טרנספורמציה הפיכה - כך שכל מי שמחזיק אסימון יכול לקרוא כל טענה בתוכו. הכלי הזה הופך את הבדיקה הזו לרגעית: הדבק אסימון מכותרת Set-Cookie, כותרת הרשאה (הקידומת של הנושא מופשטת אוטומטית), או מלוח המחוונים של ספק האישור שלך, וראה בדיוק מה השרת שלך שם שם.

טבלת התביעות היא המקום שבו מתרחש איתור באגים. תביעות זמן רשומות - exp (תפוגה), iat (הונפק ב) ו-nbf (לא לפני) - הן חותמות זמן של Unix, חסרות תועלת לקריאה גולמית. המפענח ממיר כל אחת לתאריך UTC וזמן יחסי, המוצג כ"פג תוקפו (לפני 3 שעות)" או "תקף (פג תוקפו תוך 14 דקות)", ואסימוני דגלים פג באדום. רוב התקריות "401 לא מורשות, אבל האסימון נראה בסדר" מסתכמות ב-exp שפג תוקפו, nbf מוטה שעון או טענת aud שאינה תואמת את מה שה-API מאמת - כולם גלויים כאן תוך שתי שניות.

דבר אחד הכלי הזה לא עושה בכוונה: לאמת חתימות. אימות דורש את סוד החתימה (HS256) או מפתח ציבורי (RS256/ES256), וכלי בצד הלקוח המבקש ממך להדביק סוד HMAC יהיה ללמד הרגלים רעים. הפענוח הוא 100% צד הלקוח - האסימון לעולם לא עוזב את הדפדפן שלך, לא פוגע בשרת ומופיע ביומן ללא בקשות, מה שחשוב כי JWT של ייצור חי הוא אישור נושא. כל מי שיש לו את זה, זה אתה.

הפענוח אינו מאמת, וההבחנה היא כל מודל האבטחה של JWT. הכותרת והמטען הם base64url, לא מוצפנים, כך שכל מי שמחזיק אסימון יכול לקרוא כל טענה בו ללא מפתח כלל. מה שהחתימה מספקת הוא הוכחה לכך שהתוכן לא השתנה, ובדיקתו דורשת את המפתח הסודי או הציבורי, שהוא פעולה בצד השרת. התייחס למטען כאל מידע ציבורי: לעולם אל תכניס בו משהו רגיש.

דרך מהירה לפענח אסימון JWT באינטרנט ולבדוק את התוצאה: הדבק Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI0MiIsImlhdCI6MTc2NzIyNTYwMCwiZXhwIjoxNzY3MjI5MjAwfQ.sig ולחץ על פענוח. הקידומת Bearer נשמטה, חלונית Header מציגה את {"alg": "HS256", "typ": "JWT"}, ואת לוח המטען, שפועל כמציג מטען JWT עם כפתור העתקה משלו, מציג את המשנה "42", iat 1767225600 ו-exp 1767229200. טבלת התביעות הופכת אותם ל-2026-01-01T00:00:00.000Z ו-2026-01-01T01:00:00.000Z, ומסמן את פקיעת התוקף. קטע החתימה כאן הוא טקסט מציין המיקום sig, והכלי עדיין מפענח את האסימון, מכיוון שהוא אף פעם לא בודק את החתימה.

כיצד להשתמש במפענח JWT?

  1. הדבק את האסימון שלך

    זרוק את ה-JWT לאזור הקלט. תפוס אותו מכותרת ההרשאה בדפדפן שלך DevTools Network Tab, קובץ Cookie, LocalStorage או תגובת תלתל. קידומת "נושא" מובילה והרווח הלבן שמסביב מופשטים אוטומטית, כך שתוכל להדביק את ערך הכותרת המלא ללא ניקוי.

  2. קרא את הכותרת והמטען המפושטים

    שני הקטעים מעבדים כ-JSON מעוצב זה לצד זה. הכותרת אומרת לך את אלגוריתם החתימה (ALG: RS256, HS256 וכו') ומזהה מפתח (KID) - שימושי כאשר סיבוב ה-JWKS שלך מתנהג בצורה לא נכונה. המטען מכיל את הטענות: sub, iss, aud, scopes, roles, וכל הנתונים המותאמים אישית ששכבת האישור שלך הוסיפה.

  3. בדוק את טבלת התביעות לתפוגה

    תביעות זמן (EXP, IAT, NBF) מפוענחות משניות UNIX לתאריכים קריאים עם זמנים יחסיים. EXP שפג תוקפו מופיע באדום עם כמה זמן בדיוק הוא פג; תקף מופיע בירוק עם הזמן שנותר. אם NBF הוא בעתיד - בדרך כלל הטיית שעון בין השרתים שלך - האסימון יידחה למרות שהוא "נראה" בסדר.

  4. זכור: מפוענח, לא מאומת

    כלי זה אף פעם לא בודק את החתימה - שדורשת את המפתח הסודי או הציבורי ושייך לשרת שלך, לא בכלי דפדפן. לעולם אל תתייחס לתביעות מפוענחות כקלט מהימן: תוקף יכול להטביע אסימון עם כל מטען שהוא רוצה. רק חתימה מאומתת מוכיחה שהטענות הגיעו מהמנפיק שלך ללא שינוי.

תכונות מפתח

  • כותרת מיידית + פענוח מטען

    פענוח Base64URL ב-Pure TypeScript - שני מקטעי JSON מעוצבים וקריאים באופן מיידי

  • גילוי תפוגה

    exp claition מסומן אדום כאשר פג תוקף, ירוק כאשר תקף, עם זמן יחסי מדויק בכל מקרה

  • תביעות זמן מואשמות

    EXP, IAT ו-NBF הומרו מ-RAW UNIX שניות לתאריכים של ISO וניסוח בסגנון "3 שעות"

  • סובלני קידומת נושאת

    הדבק את כל כותרת ההרשאה - "נושא" ורווח לבן תועה מופשטים אוטומטית

Frequently Asked Questions

הפענוח עצמו בטוח: הוא קורה כולו בדפדפן שלך, והאסימון לעולם לא נשלח דרך הרשת - ודא זאת בלשונית DevTools Network אם תרצה. הזהירות הרחבה יותר היא ש-JWT בייצור חי הוא אישור נושא, אז התייחס אליו כמו סיסמה בכל מקום שאתה מדביק אותו. עבור כלים של צד שלישי לא מהימנים, העדיפו אסימונים שפג תוקפם או כאלה מסביבת בימוי.

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!

jwtjwt decoderjson web tokendecode jwtjwt debuggertoken decoderjwt claimsexp claimbearer tokendecode jwt token onlinejwt token decode onlinejwt payload viewerinspect jwt claims