شرح صفوف ومحتوى الفقرة
يقبل PHP افتراضياً معرفات الجلسة غير المهيأة المرسلة من المتصفح؛ ويؤدي تفعيل session.use_strict_mode = 1 إلى إجبار PHP على رفض أي معرف جلسة لم يقم الخادم بإنشائه مسبقاً.
- استدعِ
ini_set("session.use_strict_mode", "1")وini_set("session.use_only_cookies", "1")قبل استدعاءsession_start(). - مع تفعيل الوضع الصارم، إذا أرسل مهاجم معرف جلسة محدد مسبقاً، يتجاهله PHP فوراً ويولد معرفاً عشوائياً جديداً.
- اضبط هذه الإعدادات دائماً في ملف التهيئة المركزي للتطبيق أو داخل ملف
php.ini.
تضمن أوامر ini_set() الثلاثة قبول معرفات الجلسة حصرياً من الكوكيز التي أنشأها خادمك بنفسه.
PHP
<?php
ini_set('session.use_strict_mode', '1');
ini_set('session.use_only_cookies', '1');
ini_set('session.use_trans_sid', '0');
echo "use_strict_mode : " . ini_get('session.use_strict_mode') . "\n";
echo "use_only_cookies : " . ini_get('session.use_only_cookies') . "\n";
echo "use_trans_sid : " . ini_get('session.use_trans_sid') . "\n";