כלי חינמי · רץ בדפדפן שלכם
מפענח JWT
הדביקו JSON Web Token כדי לקרוא את ה־header וה־payload ולראות מתי הוא הונפק ומתי פג תוקפו.
תשובה קצרה
ל־JWT יש שלושה חלקים מופרדים בנקודות: header, payload וחתימה. שני הראשונים הם JSON בקידוד Base64URL, כך שכל אחד יכול לפענח ולקרוא אותם; רק החתימה מוכיחה שהטוקן אמיתי. הכלי מפענח את ה־header וה־payload והופך את exp, iat ו־nbf לתאריכים קריאים. הוא לא מאמת את החתימה.
איך משתמשים
- הדביקו את הטוקן. העתיקו את ה־JWT מהאפליקציה, מ־Authorization header או מ־cookie והדביקו אותו בתיבה.
- קראו את החלקים. ה־header מציג את האלגוריתם; ה־payload מציג את ה־claims, כמו מזהה המשתמש וההרשאות.
- בדקו את הזמנים. הכלי מציג מתי הטוקן הונפק ומתי יפוג, והאם כבר פג תוקפו.
שאלות נפוצות
בטוח להדביק כאן את ה־JWT שלי?
כן. הפענוח מתבצע כולו בדפדפן ושום דבר לא נשלח לשרת. ובכל זאת, התייחסו לטוקנים מפרודקשן כמו לסיסמאות ואל תשתפו אותם.
הכלי מאמת את החתימה של ה־JWT?
לא. אימות חתימה דורש את הסוד או המפתח הציבורי, שמקומם בשרת שלכם. פענוח רק קורא את ה־header וה־payload.
למה כל אחד יכול לקרוא את ה־payload?
ה־payload רק מקודד, לא מוצפן. לעולם אל תשימו סיסמאות או סודות ב־JWT.
מה המשמעות של exp, iat ו־nbf?
exp הוא מועד התפוגה, iat הוא מועד ההנפקה ו־nbf הוא הזמן שלפניו הטוקן לא תקף. כולם חותמות זמן Unix בשניות.
למה משתמשים מתנתקים באקראי עם JWT?
בדרך כלל מרוצי refresh בין בקשות או לשוניות, הפרשי שעון, הגדרות cookie או סודות שונים בין שרתים. ראו את המאמר על תיקון באגים בסשנים של JWT.
מה ההבדל בין JWS ל־JWE?
JWS חתום אבל קריא, ורוב ה־JWT הם כאלה. JWE מוצפן, כך שאי אפשר לקרוא את ה־payload בלי המפתח. הכלי הזה מפענח רק טוקנים חתומים.
מה זה alg ב־header של JWT?
אלגוריתם החתימה, כמו HS256 (סוד משותף) או RS256 ו־ES256 (זוג מפתחות פרטי וציבורי). שרתים צריכים לקבל רק את האלגוריתמים שהם מצפים להם.
כמה זמן JWT צריך להיות תקף?
access tokens הם בדרך כלל קצרים, מדקות ועד שעה, עם refresh token ארוך יותר שמשמש לקבלת חדשים. טוקנים קצרים מגבילים את הנזק אם אחד דולף.
איפה לשמור JWT בדפדפן?
אפליקציות רבות שומרות את ה־refresh token ב־cookie מסוג httpOnly ו־Secure ואת ה־access token הקצר בזיכרון, וזה מגביל מה סקריפט זדוני יכול לקרוא.
אפשר לערוך את ה־payload ולהשתמש שוב בטוקן?
לא. שינוי של כל חלק פוסל את החתימה, ושרת שמוגדר נכון ידחה את הטוקן.