Session Hijacking
خطف الجلسة Session Hijacking
Session Hijacking هي انتحال هوية مستخدم مسجَّل دخول عبر الحصول على معرّف جلسته الصالح — بسرقته (XSS، شبكة غير مشفَّرة) أو زرعه مسبقًا (تثبيت الجلسة).
بعد تسجيل الدخول، يحمل المتصفّح معرّف جلسة (عادة بكوكي) يثبت الهوية بكل طلب لاحق دون تكرار كلمة المرور. أي طرف يحصل على نفس المعرّف يستطيع انتحال المستخدم تمامًا دون معرفة كلمة المرور إطلاقًا — عبر سرقته (من كود XSS يقرأ الكوكي، أو اتصال غير مشفَّر يُعترَض)، أو بأسلوب أدقّ يسمّى "تثبيت الجلسة" (Session Fixation) حيث يفرض المهاجم معرّف جلسة معروفًا له على الضحية **قبل** تسجيل دخولها.
الصياغة
Set-Cookie: sessionId=...; Secure; HttpOnly; SameSite=Strict
📄 مثال
// ✅ آمن: كوكي جلسة بخصائص الحماية الثلاث معًا
res.cookie("sessionId", token, {
httpOnly: true, // غير مقروء من JavaScript — يحدّ من سرقته عبر XSS
secure: true, // يُرسَل فقط عبر HTTPS
sameSite: "strict",
});
// وعند نجاح تسجيل الدخول: أصدر معرّف جلسة جديدًا دائمًا
// بدل إعادة استخدام أي معرّف كان موجودًا قبل المصادقةأهم النقاط
| النقطة | الوظيفة |
|---|---|
| HttpOnly | يمنع قراءة الكوكي من JavaScript — يحدّ من سرقتها عبر XSS |
| إعادة إصدار المعرّف | أصدر معرّف جلسة جديدًا فور تسجيل الدخول لمنع تثبيت الجلسة |
| انتهاء صلاحية معقول | جلسة صالحة للأبد تمنح المهاجم نافذة استغلال أطول لو سُرقت |
💡 نصائح عملية
- ادمج الخصائص الثلاث (HttpOnly + Secure + SameSite) معًا — كل واحدة تسدّ ثغرة مختلفة، وليست بديلة عن بعضها
⚠️ أخطاء شائعة
- قبول معرّف جلسة أرسله المستخدم بنفسه (بدل توليده على الخادم فقط) — يفتح الباب لتثبيت الجلسة
خصائص ذات صلة
🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار CYBERSECURITY الكامل بالعربي.