JWT מפענח
בדקו token לפני שרודפים אחרי באג אימות לא נכון. פענוח headers, claims, אלגוריתמים, חתימות ומצב תפוגה.
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 בכל כלי שאינכם שולטים בו.