شرح عملي
كيف تفك ترميز JWT دون تسريبه
يحمل JSON Web Token بيانات حقيقية: المستخدم الذي صدر له، والنطاقات التي يمنحها، ووقت انتهائه. لصقه في أداة فك ترميز عشوائية على الإنترنت يعني تسليم تلك البيانات، وغالبًا جلسة لا تزال صالحة، إلى خادم لا تتحكم به. أداة فك الترميز أدناه تعمل بالكامل داخل متصفحك، فيمكنك قراءة ما بداخل الرمز، والتحقق مما إذا كان قد انتهى، وتأكيد توقيع HMAC حين تعرف السر، وكل ذلك دون أن يغادر تبويبك أي طلب شبكة واحد.
خطوة بخطوة
- افتح أداة فك ترميز JWT والصق رمزك في حقل الإدخال. الـ JWT هو ثلاث كتل Base64Url موصولة بنقاط: الترويسة، والحمولة، والتوقيع. يمكنك لصقه مع بادئة Bearer أو دونها؛ تقرأ الأداة البنية في كلتا الحالتين وتخبرك فورًا إن كان التنسيق خاطئًا.
- اقرأ الترويسة والحمولة بعد فك ترميزهما. تعرض الترويسة خوارزمية التوقيع (مثل HS256 أو RS256) ومعرّف المفتاح عند وجوده. تسرد الحمولة المطالبات: لمن الرمز (sub)، ومن أصدره (iss)، والطوابع الزمنية. تحوّل الأداة حقول iat وnbf وexp الرقمية إلى تواريخ مقروءة وتبيّن ما إذا كان الرمز لا يزال صالحًا أم انتهى بالفعل.

- إذا كان الرمز يستخدم HS256 وكنت تملك السر المشترك، فالصق السر في حقل التحقق واضغط Verify. تعيد الأداة حساب HMAC على الترويسة والحمولة وتقارنه بالتوقيع، فتعرف إن كان الرمز أصليًا أم جرى العبث به. أما رموز RS256 أو ES256 فيستخدم توقيعها مفتاحًا خاصًا لا تملكه، لذا تفحص الأداة المطالبات لكنها لا تدّعي التحقق من التوقيع.

لماذا يجب ألا تلصق رمزًا أبدًا في موقع عشوائي
الـ JWT غير مشفّر. الترويسة والحمولة مرمّزتان بـ Base64Url فقط، ما يعني أن أي شخص يستلم الرمز يستطيع قراءة كل مطالبة بداخله: البريد، ومعرّف المستخدم، والأدوار، والأعلام الداخلية. وإن كان الرمز رمز وصول لم ينتهِ بعد، فمن يحمله يمكنه إعادة استخدامه والتصرف باسمك حتى ينتهي. حين تلصق رمزًا حيًّا في أداة فك ترميز مُستضافة، فأنت ترسل كل ذلك إلى سجلات ذلك الخادم. فك ترميز الرمز على جهازك أنت، دون أي رفع، هو الطريقة الوحيدة لفحصه دون توسيع دائرة من يمكنه رؤيته. ويمكنك التأكد من انعدام أي حركة شبكة بفتح لوحة الشبكة أثناء فك الترميز.
ما الذي يخبرك به التوقيع وما لا يخبرك به
التوقيع هو ما يمنع شخصًا من تعديل المطالبات والإفلات بفعلته. في رمز HS256، يوقّع السر نفسه ويتحقق، فإن عرفت السر استطعت تأكيد أصالة الرمز هنا تمامًا. أما في رموز RS256 وES256، فيوقّع مفتاح خاص الرمز ولا يتحقق منه إلا المفتاح العام المطابق؛ والمفتاح الخاص لا يغادر الجهة المُصدِرة أبدًا، فتستطيع أداة من جهة العميل قراءة المطالبات لكنها لا تستطيع إثبات التوقيع بصدق دون ذلك المفتاح العام. عامل الحمولة المفكوكة بوصفها ادعاءً تقدّمه الجهة المُصدِرة، لا دليلًا، إلى أن يتحقق من التوقيع من يملك مفتاح التحقق. ولتجزئة الأسرار أو مقارنتها بشكل منفصل، فمولّد التجزئة على هذا الموقع يعمل محليًا أيضًا.
بنية JWT وما يكشفه كل جزء
JWT هو ثلاثة مقاطع مُشفَّرة بـ Base64url مفصولة بنقاط: رأس، وحمولة، وتوقيع. يُعلن الرأس عن نوع الرمز («JWT») والخوارزمية: HS256 (HMAC-SHA-256، سر مشترك) أو RS256 (RSA-SHA-256، زوج مفاتيح عام/خاص) هما الأكثر شيوعًا. تحمل الحمولة ادعاءات كـ `sub` (الموضوع، وهو عادةً معرف المستخدم)، و`iat` (الطابع الزمني Unix لوقت الإصدار)، و`exp` (الطابع الزمني Unix لوقت الانتهاء)، و`aud` (الجمهور المقصود)، وادعاءات تطبيقية مخصصة كالأدوار أو النطاقات. Base64url ليس تشفيرًا: هو نوع من Base64 آمن لعناوين URL يستبدل `+` بـ `-` و`/` بـ `_` ويحذف الحشو. يمكن لأي شخص يملك سلسلة الرمز الخام فك ترميز الرأس والحمولة دون مفتاح التوقيع. مقطع التوقيع وحده يتطلب المفتاح للتحقق. لذا فإن لصق رمز إنتاج حي في مفكك ترميز خارجي عبر الإنترنت ينطوي على مخاطرة أمنية: إن كانت قيمة `exp` للرمز لا تزال في المستقبل وسجّلت الخدمة المدخلات، فإن الجلسة التي يمثلها قد تكون عرضة للاختراق.
الأدوات المستخدمة في هذا الدليل
الأسئلة الشائعة
هل يُرسَل رمزي إلى أي خادم حين أفك ترميزه؟
لا. تقسم الأداة الرمز، وتفك ترميز الترويسة والحمولة بـ Base64Url، وتعرضهما في الذاكرة. ويستخدم فحص HMAC الاختياري واجهة Web Crypto المدمجة في متصفحك. لا شيء يسافر عبر الشبكة، وهذا مهم لأن الـ JWT كثيرًا ما يحوي بيانات شخصية وجلسة لا تزال حية. افتح لوحة الشبكة في متصفحك أثناء فك الترميز ولن ترى أي طلب يخرج.
هل تستطيع هذه الأداة التحقق من توقيع RS256 أو ES256؟
ليس تمامًا، ولن تتظاهر بذلك. يستخدم HS256 سرًّا مشتركًا واحدًا للتوقيع والتحقق معًا، فلصق ذلك السر يتيح للأداة تأكيد التوقيع في متصفحك. أما RS256 وES256 فيستخدمان مفتاحًا خاصًا للتوقيع ومفتاحًا عامًا منفصلًا للتحقق؛ تقرأ الأداة المطالبات وتتحقق من المطالبات والانتهاء، لكنها لا تجزم بتوقيع لا تستطيع فحصه. لتلك الرموز، تحقق على الخدمة التي تملك المفتاح العام.