أداة فك ترميز JWT

الصق رمز JSON Web Token لرؤية الترويسة والحمولة وتاريخ الانتهاء. يتم فك الترميز محليًا، ولا يُرسَل رمزك إلى أي مكان.

يعمل 100% في متصفحك. لا يتم رفع أي شيء تلصقه أو تخزينه.

الترويسة (Header)

الحمولة (Payload)

المطالبات (Claims)

يُعرض التوقيع لكن لا يُتحقق منه: يتطلب التحقق المفتاح السري أو العام، وهو ما يجب ألا تلصقه في أي موقع ويب أبدًا.

كيف تستخدم أداة فك ترميز JWT

  1. الصق رمز JSON Web Token، وهو السلسلة الطويلة التي تأتي عادةً بعد Authorization: Bearer.
  2. يُفك ترميز الترويسة والحمولة وتُعرضان بتنسيق JSON مرتب.
  3. تُحوَّل المطالبات الزمنية مثل exp وiat وnbf إلى تواريخ مقروءة، فترى بنظرة واحدة ما إذا كانت صلاحية الرمز قد انتهت.
الخصوصية: لا تلصق أبدًا رموز بيئة الإنتاج في موقع لا تثق به؛ فالرمز الصالح يمكن أن يعيد استخدامه أي شخص يراه حتى تنتهي صلاحيته. تعمل أداة فك الترميز هذه بالكامل في متصفحك: لا يُرفع الرمز ولا يُسجَّل ولا يُخزَّن أبدًا. ومع ذلك، فضّل استخدام رموز الاختبار، وألغِ أي رمز تشك في أنه انكشف.

تشريح رمز JWT

رمز JSON Web Token، المحدَّد في RFC 7519، طريقة مضغوطة لنقل المطالبات بين الأطراف. يتكوّن الشكل الموقَّع الشائع (JWS) من ثلاثة أجزاء تفصل بينها نقاط:

header.payload.signature

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjMifQ.<signature>
  • الترويسة (Header): كائن JSON يصف الرمز، وأهم ما فيه خوارزمية التوقيع. فك ترميز eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 يعطي {"alg":"HS256","typ":"JWT"}.
  • الحمولة (Payload): كائن JSON يحتوي على المطالبات، أي البيانات المتعلقة بالمستخدم أو الجلسة.
  • التوقيع: يُحسب على الترويسة والحمولة المرمَّزتين باستخدام سرّ (HMAC، مثل HS256) أو مفتاح خاص (مثل RS256 وES256).

يُرمَّز كل جزء بترميز base64url، وهو أبجدية Base64 الآمنة لعناوين URL من دون حشو. ولهذا تحتوي الرموز على - و_، ولهذا تبدأ رموز JWT دائمًا تقريبًا بـ eyJ: فهكذا يُرمَّز {" الافتتاحي لكائن JSON حين يليه اسم مفتاح نموذجي بأحرف صغيرة. يمكنك استكشاف الترميز نفسه باستخدام أداة ترميز Base64.

المطالبات المسجَّلة

المطالبةالاسمالمعنى
issالمُصدِر (Issuer)الجهة التي أنشأت الرمز ووقّعته.
subالموضوع (Subject)الجهة التي يتعلق بها الرمز، وعادةً معرّف مستخدم.
audالجمهور (Audience)الخدمة أو الخدمات المقصودة بالرمز.
expوقت انتهاء الصلاحية (Expiration time)طابع زمني Unix يجب رفض الرمز بعده.
nbfليس قبل (Not before)طابع زمني Unix لا يكون الرمز صالحًا قبله.
iatوقت الإصدار (Issued at)طابع زمني Unix لوقت إنشاء الرمز.
jtiمعرّف JWT (JWT ID)معرّف فريد، مفيد لمنع إعادة الاستخدام.

كل هذه المطالبات اختيارية في RFC 7519؛ والتطبيقات هي التي تقرر ما تشترطه منها. المطالبات الزمنية بالثواني لا بالملي ثانية؛ ويشرح محوّل الطابع الزمني Unix الفرق.

أخطاء شائعة

فك الترميز ليس تحققًا

يستطيع أي شخص فك ترميز JWT؛ وهذا بالضبط ما تفعله هذه الأداة. يخبرك فك الترميز بما يدّعيه الرمز، لا بما إذا كانت تلك المطالبات حقيقية. يجب على الخادم التحقق من التوقيع بالمفتاح الصحيح وفحص exp وnbf وiss وaud قبل الوثوق بأي شيء في الحمولة.

الحمولة ليست سرية

رمز JWT الموقَّع قابل للقراءة لأي شخص يحمله. لا تضع في الحمولة كلمات مرور، أو بيانات شخصية لا تريد كشفها للعميل، أو أسرارًا داخلية. وإذا كان يجب أن تبقى المحتويات سرية، فاستخدم JWT مشفَّرًا (JWE) أو احتفظ بالبيانات على الخادم.

alg: none والخلط بين الخوارزميات

تعرّف مواصفات JOSE القيمة "alg": "none" للرموز غير المؤمَّنة ذات التوقيع الفارغ. والمكتبة التي تلتزم بما تقوله ترويسة الرمز نفسه قد تقبل رمزًا مزوّرًا كهذا:

{"alg": "none", "typ": "JWT"}
{"sub": "admin"}
(توقيع فارغ)

وثمة هجوم مرتبط يحوّل رمز RS256 إلى HS256 بحيث يُساء استخدام المفتاح العام كسرّ HMAC. والدفاع ضد الاثنين واحد: اضبط الخوارزميات المسموح بها على الخادم ولا تدع الرمز يختار أبدًا.

نصائح

  • اجعل رموز الوصول قصيرة العمر واستخدم رموز التحديث للجلسات الأطول.
  • اسمح بفارق صغير في الساعة (دقيقة مثلًا) عند فحص exp وnbf بين الخوادم.
  • استخدم مكتبة JWT تحظى بصيانة جيدة بدلًا من تحليل الرموز والتحقق منها يدويًا.

الأسئلة الشائعة

هل تستطيع هذه الأداة التحقق من توقيع JWT؟

يتطلب التحقق سرّ الجهة المُصدِرة أو مفتاحها العام، ويجب أن يتم في الواجهة الخلفية لديك. هذه الأداة مخصصة لفحص ترويسة الرمز ومطالباته أثناء تصحيح الأخطاء.

لماذا يظهر رمزي منتهي الصلاحية؟

قيمة المطالبة exp أقدم من الوقت الحالي على جهازك. تأكد من أن ساعتك مضبوطة، ومن أن الجهة المُصدِرة كتبت exp بالثواني.

هل رموز JWT مشفّرة؟

رموز JWT الموقَّعة (JWS)، وهي الغالبية العظمى المستخدمة، مرمَّزة وموقَّعة فقط، لذا يستطيع أي شخص قراءتها. أما رموز JWT المشفّرة (JWE) فتتكوّن من خمسة أجزاء بدلًا من ثلاثة.

هل لصق رمزي هنا آمن؟

يتم فك الترميز محليًا ولا يُرسل أي شيء. وكقاعدة عامة، تجنّب لصق رموز الإنتاج الحية في أي أداة عبر الإنترنت لم تراجعها.

آخر تحديث

تم النسخ إلى الحافظة