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

Implementing Inactivity Session Timeouts تطبيق انتهاء الصلاحية التلقائي عند الخمول

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

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

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

لا تعتمد فقط على جامع المهملات الاحتمالي في PHP‏ (session.gc_maxlifetime) لإنهاء الجلسات الخاملة؛ بل تتبع الطابع الزمني $_SESSION["last_activity"] برمجياً في كل طلب.

  • في كل طلب لمستخدم مسجل، افحص ما إذا كان time() - $_SESSION["last_activity"] > $maxIdleSeconds.
  • إذا تجاوزت مدة الخمول الحد المسموح (مثل 1800 ثانية أي 30 دقيقة)، أفرغ مصفوفة $_SESSION ودمّر الجلسة وحوّل المستخدم لصفحة الدخول.
  • أما إذا كانت الجلسة نشطة، فحدّث $_SESSION["last_activity"] = time() لتمديد نافذة النشاط.

بما أن فترة الخمول البالغة 2400 ثانية تجاوزت الحد المسموح 1800 ثانية، يتم تفريغ الجلسة وإنهاؤها فوراً.