JWT מפענח

בדקו token לפני שרודפים אחרי באג אימות לא נכון. פענוח headers, claims, אלגוריתמים, חתימות ומצב תפוגה.

Token מקודד

HeaderPayloadSignature

פלט מפוענח

ממתין ל-token...

מה זה JWT?

JSON Web Token הוא פורמט קומפקטי להעברת תביעות בין מערכות. בניפוי באגים היומיומי, השאלות השימושיות בדרך כלל פשוטות: מי הנפיק את האסימון, למי הוא מיועד, אילו הרשאות הוא טוען, איזה אלגוריתם חתם עליו והאם פג תוקפו?

Header

מציג מטא-דאטה של token כמו typ, alg ולעיתים kid, שמצביע על המפתח שהמנפיק השתמש בו.

Payload

מכיל claims כמו sub, iss, aud, exp, iat, תפקידים, tenant IDs או נתוני הרשאות ספציפיים לאפליקציה.

Signature

מגן על האסימון מפני שיבוש כאשר השרת מאמת אותו עם המפתח הסודי או הציבורי הצפוי.

Expiry

תביעת ה-exp היא לרוב הרמז המהיר ביותר באיתור באגים. אסימון מעוצב היטב עדיין חסר תועלת כאשר הוא כבר מחוץ לחלון התוקף שלו.

שאלות נפוצות על JWT

האם JWTs מוצפנים?

בדרך כלל לא. JWTs סטנדרטיים מקודדים, לא מוצפנים, כך שכל מי שיש לו את ה-token יכול לבדוק את ה-header וה-payload. החתימה מגנה על שלמות הנתונים.

האם פענוח JWT מאמת שהוא מהימן?

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

מה קורה כשפג תוקפו של אסימון?

אם claim ה-exp נמצא בעבר, השרת צריך לדחות את ה-token והלקוח צריך לבצע אימות מחדש או לבקש access token חדש דרך תהליך הרענון הנכון.

האם להדביק tokens של production לתוך מפענח?

התייחסו ל-tokens חיים כמו credentials. השתמשו ב-tokens לבדיקה קצרי מועד כשאפשר, והימנעו מהדבקת access tokens רגישים של production בכל כלי שאינכם שולטים בו.