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

Regenerating IDs on Privilege Change توليد معرف جديد عند الدخول بـ session_regenerate_id

امنع اختطاف وتثبيت الجلسات في PHP 8 عبر session_regenerate_id والوضع الصارم وخصائص الكوكيز HttpOnly وSecure وSameSite.
1 صفوف تعليمية
PHP
0 مشاهدة

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

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

عندما يتغير مستوى صلاحيات المستخدم—وخصوصاً لحظة تسجيل الدخول أو ترقية الصلاحية أو تغيير كلمة المرور—يجب استدعاء الدالة session_regenerate_id(true).

  • يؤدي تمرير المعامل true (أي $delete_old_session = true) إلى حذف ملف الجلسة القديم فوراً من الخادم.
  • يتلقى المتصفح كوكيز جديدة بالمعرف المحدث بينما تظل جميع البيانات المحفوظة داخل مصفوفة $_SESSION سليمة كما هي.
  • يبطل هذا الإجراء تماماً أي معرف جلسة قديم كان موجوداً قبل تسجيل الدخول.

يضمن تدوير معرف الجلسة عند تعبئة $_SESSION["user_id"] عدم اشتراك جلسة المستخدم الموثقة في نفس المعرف القديم لجلسة الزائر.