انتقل إلى محتوى الدرس

Preventing Session Fixation Attacks تجديد الجلسة ومنع اختطافها

بناء نظام تسجيل المستخدمين والتحقق من بيانات الدخول عبر Auth::attempt وتجديد معرف الجلسة لمنع الاختطاف وتسجيل الخروج الآمن.
1 صفوف تعليمية
إطار العمل Laravel
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

فور نجاح التحقق عبر Auth::attempt، يجب استدعاء دالة $request->session->regenerate لتوليد معرف جلسة جديد تماماً مع الاحتفاظ بالبيانات الحالية. يمنع هذا الإجراء هجمات تثبيت الجلسة Session Fixation التي يحاول فيها المهاجم فرض معرف جلسة معروف مسبقاً على الضحية.

  • تجديد معرف الجلسة (regenerate): يصدر معرف جلسة جديداً فور ترقية حالة الزائر إلى مستخدم مسجل.
  • التوجيه لصفحة المقصد (intended Redirect): يعيد المستخدم تلقائياً إلى الصفحة المحمية التي حاول زيارتها قبل مطالبته بالدخول.
  • المسار الاحتياطي (Fallback Route): مرر مسار لوحة التحكم كقيمة افتراضية لدالة intended في حال الدخول المباشر.
PHP
if (Auth::attempt($credentials)) {
    $request->session()->regenerate();
    return redirect()->intended('/dashboard');
}
return back()->withErrors(['email' => 'Invalid credentials.'])