كيفية فك تشفير رموز JWT وفحص مطالباتها بأمان
إجابة سريعة
JWT = ترويسة.حمولة.توقيع. فك تشفير الأجزاء الأولى والثانية (Base64Url) لرؤية JSON. لكن فك التشفير لا يتحقق من التوقيع — تحتاج المفتاح السري للتأكد من صحة الرمز. استخدم فاك تشفير JWT المجاني.
مقدمة
JWT (JSON Web Token) يتكون من ثلاثة أجزاء مفصولة بنقاط: ترويسة (خوارزمية التوقيع)، حمولة (المطالبات)، وتوقيع. الأجزاء الأولى والثانية مشفرة Base64Url ويمكن فك تشفيرها لرؤية المحتوى. التوقيع يضمن عدم التلاعب لكن فك التشفير وحده لا يتحقق منه.
خطوة بخطوة
-
افتح أداة فك التشفير JWT
انتقل إلى صفحة أداة فك التشفير JWT. تقبل الأداة أي سلسلة JWT (ثلاثة أجزاء مشفرة بـ Base64URL مفصولة بالنقاط).
-
الصق الرمز المميز JWT الخاص بك
الصق JWT في حقل الإدخال. يبدو JWT النموذجي كما يلي: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1c2VyMSJ9.signature. تقوم الأداة بالكشف التلقائي عن الأجزاء الثلاثة.
-
قم بمراجعة الرأس الذي تم فك ترميزه
تقوم الأداة Base64URL بفك تشفير الجزء الأول وتعرضه كـ JSON. يحتوي الرأس عادةً على "alg" (خوارزمية، على سبيل المثال، HS256) و"typ" (النوع، عادةً "JWT").
-
مراجعة الحمولة النافعة التي تم فك تشفيرها (المطالبات)
تقوم الأداة بفك تشفير الجزء الثاني وتعرض المطالبات بتنسيق JSON. تتضمن المطالبات الشائعة "sub" (الموضوع/معرف المستخدم)، و"iat" (تم إصداره في)، و"exp" (انتهاء الصلاحية)، و"role" (دور المستخدم).
-
التحقق من التوقيع (الجزء الثالث)
تظهر الأداة جزء التوقيع. ملاحظة: فك التشفير لا يتحقق من التوقيع. للتحقق، تحتاج إلى مفتاح التوقيع ومكتبة التحقق. لا تثق أبدًا في ادعاءات JWT دون التحقق من التوقيع من جانب الخادم.
أمثلة
فك شفرة JWT بسيطة
مدخل: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyMSIsIm5hbWUiOiJBbGljZSIsImlhdCI6MTY5MzUyNjQwMH0.signature
الإخراج: Header: {"alg":"HS256","typ":"JWT"}
Payload: {"sub":"user1","name":"Alice","iat":1693526400}
JWT مع مطالبة انتهاء الصلاحية
مدخل: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbiIsImV4cCI6MTY5MzYxMjgwMH0.sig
الإخراج: Header: {"alg":"HS256"}
Payload: {"sub":"admin","exp":1693612800}
المشاكل الشائعة
- الخلط بين فك التشفير والتحقق — فك تشفير JWT يقرأ محتوياته فقط؛ لا يثبت أن الرمز المميز أصلي. تحقق دائمًا من جانب خادم التوقيع باستخدام مفتاح التوقيع.
- الثقة في الرموز المميزة منتهية الصلاحية - تحقق من مطالبة "exp" وارفض الرموز المميزة منتهية الصلاحية. القيمة "exp" هي طابع زمني لنظام Unix بالثواني.
- Base64 مقابل Base64URL —JWT يستخدم ترميز Base64URL (بدون حشوة، - و _ بدلاً من + و /). سيفشل جهاز فك التشفير القياسي Base64 في أجزاء JWT.
- البيانات الحساسة في الحمولة —JWT الحمولة قابلة للقراءة بواسطة أي شخص لديه الرمز المميز. لا تقم بتخزين كلمات المرور أو أرقام بطاقات الائتمان أو الأسرار الأخرى في الحمولة.
نصائح
- تحقق دائمًا من جانب خادم التوقيع JWT قبل الثقة في أي مطالبات - فك التشفير وحده لا يعد مصادقة.
- تحقق من مطالبات "exp" (انتهاء الصلاحية) و"nbf" (ليس قبل) للتأكد من صلاحية الرمز المميز في الوقت الحالي.
- استخدم الرموز المميزة قصيرة العمر (15-60 دقيقة) مع رموز التحديث المميزة للجلسات الطويلة — مما يقلل من الضرر في حالة تسرب الرمز المميز.
- استخدم وحدة فك الترميز JWT الخاصة بنا لتصحيح الأخطاء محليًا وآمنًا - لا يغادر الرمز المميز متصفحك أبدًا.