الأكثر استخداماً

Base64 وJWT للمطورين العرب: الدليل العملي الشامل

👨‍💻 أدوات المطورين📅 21 أغسطس 2026⏱️ 12 دقيقة قراءة

لو كنت تطور أي تطبيق ويب حديث، فقد مررت حتماً بسلسلة نصوص طويلة تنتهي بنقاط مثل eyJhbGciOiJIUzI1NiJ9.eyJzdWIi... وحاولت فهم ماذا تعني. هذا الدليل يشرح كل ما تحتاجه عملياً عن Base64 وJWT — من الأساسيات إلى الأخطاء الأمنية التي أسقطت شركات كبرى.

الأساس الذي يخلط فيه الجميع: الترميز ≠ التشفير

هذا أهم مفهوم في المقال كله، وفهمه يفرق بين مطور محترف ومبتدئ:

قاعدة ذهبية: إذا رأيت كلمة سر أو رقم بطاقة أو بيانات حساسة "مشفرة" بـ Base64 في كود أحد... فهي مكشوفة تماماً. Base64 لا يحمي شيئاً — وظيفته الوحيدة نقل بيانات ثنائية عبر قنوات نصية (بريد إلكتروني، URLs، JSON).

كيف يعمل Base64 داخلياً؟ (في 30 ثانية)

  1. يأخذ بياناتك كل 3 بايت (24 بت)
  2. يقسمها إلى 4 مجموعات من 6 بت
  3. كل مجموعة 6 بت = رقم من 0-63 → يحوّله لحرف من جدول الأحرف الـ64: A-Z, a-z, 0-9, +, / مع = للحشو

Hello تصبح SGVsbG8=. حجم النص يزيد ~33% (3 بايت تصبح 4) — لهذا لا تستخدم Base64 للملفات الضخمة بلا داعٍ.

Base64URL — النسخة الآمنة للروابط

المشكلة: رمزا + و/ لهما معنى خاص في الروابط. الحل في JWTs: استبدالهما بـ - و_ وإلغاء حشو =. أدواتنا تتعامل مع الصيغتين تلقائياً.

JWT: جواز السفر الرقمي لتطبيقاتك

JSON Web Token هو المعيار القياسي (RFC 7519) لمصادقة APIs الحديثة. عند تسجيل دخول مستخدم، الخادم يمنحه توكناً يحمله معه في كل طلب لاحق — والخادم يثق به دون جلسة مخزنة (Stateless Authentication).

تشريح التوكن: ثلاث قطع مفصولة بنقطتين

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9   ← Header
.
eyJ1c2VyX2lkIjoxNDMsInJvbGUiOiJhZG1pbiJ9   ← Payload
.
SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJVadQssw5c   ← Signature

الأجزاء الثلاثة مرمزة Base64URL فقط — أي أن Payload مقروء لأي شخص! جرّبه الآن: انسخ أي توكن من متصفحك (F12 → Application → Cookies/Local Storage) والصقه في أداة فك JWT المجانية — سترى محتواه كاملاً أمامك خلال ثانية.

النقطة الحرجة: فك التوكن ليس التحقق منه

هنا يسقط كثير من المطورين:

لهذا القاعدة الأمنية الأولى: لا تثق بأي claim داخل التوكن حتى تتحقق من توقيعه في خادمك. مهاجم يستطيع كتابة {"role": "admin"} في توكن مزيف — لكنه لن يستطيع توليد التوقيع الصحيح له. إن تخطى خادمك التحقق لأنك "قرأت الدور وأنت مطمئن"، فتحت الباب للاختراق.

الأخطاء الأمنية القاتلة في JWT

أمثلة كود عملية

إنشاء وتوقيع توكن (Node.js)

const jwt = require('jsonwebtoken');

const token = jwt.sign(
  { user_id: 143, role: 'editor' },        // Payload
  process.env.JWT_SECRET,                   // مفتاح 256-bit+
  { expiresIn: '15m', issuer: 'sp5-api' }  // خيارات أمان
);

تحقق صحيح في middleware

try {
  const payload = jwt.verify(token, process.env.JWT_SECRET, {
    algorithms: ['HS256'],      // ارفض كل شيء آخر — حتى لو طلب الهيدر غيرها
    issuer: 'sp5-api'
  });
  req.user = payload;
} catch (err) {
  return res.status(401).json({ error: 'invalid token' });
}
// الآن وبعد التحقق فقط — استخدم req.user.role بأمان

متى تستخدم Base64 فعلياً؟

ومتى لا؟ لا تستخدمه أبداً كوسيلة "إخفاء" لكلمات سر أو مفاتيح API في كود الواجهة الأمامية — كل شيء يصل للمتصفح مكشوف، والمستخدم الواعي سيفكه عبر الأداة في ثوانٍ.

أسئلة شائعة

هل فك JWT الخاص بي في أداة أونلاين خطر؟ الفك مجرد قراءة نص مرمز — لا يتطلب مفتاحاً ولا يكشف التوقيع. الخطر الحقيقي الوحيد أن يكون التوكن نفسه نشطاً وسرقته الأداة (وهذا لا يحدث في أدوات client-side نظيفة). الأداة عندنا تعمل كلياً في متصفحك — يمكنك قطع الإنترنت بعدها بالتحميل وستعمل. ومع ذلك، العرف المهني: توكنات الإنتاج الحقيقية تُفحص في بيئة التطوير لديك.

Session أم JWT؟ الجلسات التقليدية أبسط وأسهل الإبطال (Revocation). JWT يتألق في: microservices، تطبيقات موبايل، APIs عامة، وأنظمة موزعة حيث تخزين الجلسات مكلف. الحل الهجين الشائع: Access Token قصير (15 دقيقة) + Refresh Token قابل للإبطال.

ما الفرق بين HS256 وRS256؟ HS256 متماثل (نفس المفتاح يوقع ويتحقق) — مناسب لتطبيق واحد. RS256 غير متماثل (خاص يوقع + عام يتحقق) — ضروري عندما يتحقق طرفان آخرون من توكناتك دون أن يستطيعوا تزويرها، كما في Google OAuth.

الخلاصة

احفظ ثلاث جمل وتجاوزت 80% من أخطاء المبتدئين: Base64 ترميز لا تشفير. Payload في JWT مكشوف للجميع. التحقق من التوقيع وحده هو الأمان. جرّب الآن أداة Base64 & JWT Decoder — تعمل كلياً في متصفحك، تفك الصيغتين العادية وURL، وتعرض لك التوكنات بشكل JSON منظم مع حالة الصلاحية.

شارك المقال:فيسبوكتويتر