فاحص انتهاء صلاحية JWT

تعمل في المتصفح الأمان

يقرأ مطالبات exp وnbf وiat ويعرض نافذة صلاحية الرمز بمنطقتك الزمنية المحلية وبتوقيت UTC، مع عدّ تنازلي مباشر.

الخصوصية: تعمل هذه الأداة بالكامل في متصفحك. لا تغادر بياناتك جهازك أبداً.
جارٍ تحميل الأداة…

ما هو JWT؟

رمز JWT سلسلة مضغوطة من ثلاثة أجزاء بترميز Base64url — header.payload.signature — تحمل مطالبات عن مستخدم أو عميل (الموضوع والأدوار والانتهاء) مع توقيع يمكن للمستقبِل التحقق منه. عُرّف في RFC 7519 مع قواعد توقيعه في RFC 7515 و7518، وهو الصيغة المعتادة لرموز وصول OAuth 2.0 ورموز هوية OpenID Connect. الحمولة مرمّزة فقط لا مشفّرة: من يملك الرمز يستطيع قراءتها.

ملاحظة أمنية: فك الترميز ليس تحققاً. يجب على الخادم فحص التوقيع بخوارزمية مثبّتة ورفض alg=none والتحقق من exp وiss وaud — والرمز الحقيقي الذي يُلصق في أي مكان يبقى سراً حتى ينتهي.

اقرأ الدليل: ما هو JWT؟ شرح رموز JSON Web Token

كيفية استخدام فاحص انتهاء صلاحية JWT

  1. الصق رمز JWT.
  2. اطّلع على الحالة والعدّ التنازلي حتى انتهاء الصلاحية (أو منذ متى انتهت).
  3. اضبط تفاوت انحراف الساعة إذا كانت خوادمك تقبل بضع ثوانٍ من التساهل.
  4. استخدم جدول الطوابع الزمنية لمقارنة توقيت UTC بالتوقيت المحلي عند تصحيح مشكلات المناطق الزمنية.
قبل nbf لا يكون الرمز صالحاً بعد، ومن nbf حتى exp يكون صالحاً، ومن exp فصاعداً تنتهي صلاحيته؛ ويوسّع تفاوت انحراف الساعة الحدّين كليهما، لكن في صف منفصل فقط. نموذج مفاهيمي

رمز فيه nbf وexp

  • now < nbfلم يصبح صالحاً بعدفشل
  • nbf ≤ now < expصالحنجاح
  • now ≥ expمنتهي الصلاحيةفشل
  • nbf − skewالتفاوت
  • exp + skewالتفاوت
  1. 1iat وقت الإصداريُستخدم لمدة الصلاحية والوقت المنقضي، لا للحالة.
  2. 2nbf غير صالح قبليصبح صالحاً من هذه اللحظة؛ ودون nbf لا قيد على البداية.
  3. 3now وقت التحقق: ساعة جهازك
  4. 4exp انتهاء الصلاحيةعند exp نفسه تكون صلاحية الرمز قد انتهت.

رمز فيه nbf دون exp

  • now < nbfلم يصبح صالحاً بعدفشل
  • now ≥ nbfبلا انتهاء صلاحية: خطر أمنيتنبيه

المواضع توضيحية. تعتمد الحالة والعدّ التنازلي المباشر دائماً على الحدّين الدقيقين؛ ولا يضيف التفاوت إلا صفاً منفصلاً With Ns skew عندما يغيّر الحكم.

مزايا فاحص انتهاء صلاحية JWT

  • حكم فوري: صالح، أو منتهي الصلاحية، أو لم يصبح صالحاً بعد، أو بلا انتهاء صلاحية
  • عدّ تنازلي مباشر يتحدّث كل ثانية في متصفحك
  • عرض exp وnbf وiat وauth_time بصيغة Unix وتوقيت UTC والتوقيت المحلي والوقت النسبي
  • مدة الصلاحية والنسبة المئوية المنقضية منها
  • تفاوت اختياري لانحراف الساعة (clock skew) لمحاكاة تساهل الخوادم
  • يكتشف الطوابع الزمنية بالميلي ثانية وأخطاء انتهاء الصلاحية قبل الإصدار

مثال على فاحص انتهاء صلاحية JWT

فحص رمز تنتهي صلاحيته عام 2100

الإدخال:

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1c2VyXzhmM2EyYyIsImlhdCI6MTcwMDAwMDAwMCwibmJmIjoxNzAwMDAwMDAwLCJleHAiOjQxMDI0NDQ4MDB9.…

النتيجة:

Status: Valid — expires in <time remaining when you check> (2100-01-01 00:00:00 UTC)
Issued: 2023-11-14 22:13:20 UTC
Lifetime: 76y 2mo

الأسئلة الشائعة حول فاحص انتهاء صلاحية JWT

كيف يُحدَّد «انتهاء الصلاحية»؟

تُقارن مطالبة exp (الثواني منذ بداية عصر Unix) بساعة حاسوبك. يُعدّ الرمز منتهي الصلاحية منذ اللحظة التي تبلغ فيها الساعة قيمة exp (أي حين يكون exp الآن أو في الماضي)، و«لم يصبح صالحاً بعد» ما دام nbf في المستقبل. أضف تفاوتاً لانحراف الساعة لمحاكاة الخوادم التي تسمح ببضع ثوانٍ من التساهل.

لا يزال خادمي يرفض رمزاً تقول هذه الأداة إنه صالح — لماذا؟

تتحقق الخوادم أيضاً من التوقيع والجهة المُصدِرة والجمهور، وقد تفرض حداً أقصى للعمر أقصر من exp. وقد تؤثر فروق الساعة بين جهازك والخادم أيضاً — قارن وقت «وقت التحقق» بساعة الخادم.

ماذا لو لم يحتوِ الرمز على مطالبة exp؟

تعرض الأداة «بلا انتهاء صلاحية». لا تنتهي صلاحية مثل هذه الرموز من تلقاء نفسها أبداً، وهو ما يشكّل خطراً أمنياً؛ فينبغي للجهة المُصدِرة ضبط exp دائماً.

هل يتحدّث العدّ التنازلي تلقائياً؟

نعم. بمجرد فحص الرمز، يُعاد حساب الوقت المتبقي كل ثانية في متصفحك.

ملاحظات تقنية

الطوابع الزمنية في JWT هي قيم NumericDate — أي الثواني منذ 1970-01-01T00:00:00Z مع تجاهل الثواني الكبيسة. يقارنها الفاحص بساعة جهازك، لذا تُنتج الساعة المحلية الخاطئة أحكاماً خاطئة؛ ويعرض صف «وقت التحقق» الوقت المرجعي المستخدم.

المراجع

  • RFC 7519: JSON Web Token (JWT)IETF · 2015يعرّف صيغة JWT — الترويسة والحمولة والتوقيع — والمطالبات المسجّلة iss وsub وaud وexp وnbf وiat وjti.
  • RFC 7515: JSON Web Signature (JWS)IETF · 2015كيف يُوقَّع JWT ويُسلسَل: الترويسة المحمية ومدخل التوقيع والتسلسل المضغوط.
  • RFC 7518: JSON Web Algorithms (JWA)IETF · 2015الخوارزميات وراء ترويسة alg: HS256/384/512 وRS256 وES256 ومتطلبات حجم المفتاح لكل منها.