شرح صفوف ومحتوى الفقرة
لحماية التطبيق من هجمات تثبيت الجلسة Session Fixation عند تغير صلاحيات المستخدم، يجب توليد معرف جلسة جديد عبر دالة regenerate. وعند إنهاء الجلسة بالكامل، تُستدعى دالة invalidate التي تمسح كافة البيانات وتولد معرفاً جديداً في خطوة واحدة.
- تجديد المعرف مع بقاء البيانات (regenerate): يولد معرفاً عشوائياً جديداً للجلسة مع الاحتفاظ بالبيانات الحالية.
- إبطال الجلسة بالكامل (invalidate): يفرغ جميع بيانات الجلسة ويغير معرفها في عملية واحدة آمنة.
- صد هجمات تثبيت الجلسة (Fixation Defense): يمنع المهاجم من استغلال معرف جلسة قديم بعد تغير حالة المستخدم.
PHP
<?php
use Illuminate\Http\Request;
public function resetSession(Request $request)
{
$request->session()->invalidate();
return to_route('home');
}