0Pricing
PHP Academy · درس

أفضل ممارسات أمان الجلسات

امنعوا تثبيت الجلسة واختطافها باستخدام إعادة التوليد والرايات

أفضل ممارسات أمان الجلسات درس مجاني في PHP Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في PHP Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة PHP Academy 4 دروس في المجموع.

هجوم تثبيت الجلسة

يخدع المهاجم مستخدمًا ليستخدم معرّف جلسة يعرفه المهاجم مسبقًا، ثم يختطف الجلسة بعد تسجيل الدخول.

منع التثبيت: session_regenerate_id()

بعد أي تغيير في الصلاحيات، مثل تسجيل الدخول أو تغيير الدور، أنشئ معرّف جلسة جديدًا مع الاحتفاظ ببيانات الجلسة الحالية.

<?php
session_start();
// After successful login:
session_regenerate_id(true); // true = delete old session file
$_SESSION["user_id"] = $userId;

اختطاف الجلسة

يسرق المهاجم معرّف الجلسة عبر التنصت على الشبكة أو XSS أو تسريب السجلات. خفّف هذا الخطر باستخدام HTTPS وملفات تعريف الارتباط HttpOnly وبصمة المتصفح.

session.cookie_httponly

امنع JavaScript من قراءة ملف تعريف ارتباط الجلسة — فهذا يوقف معظم حالات سرقة الجلسات المستندة إلى XSS.

<?php
ini_set("session.cookie_httponly", 1);
session_start();

session.cookie_secure

ضع علامة Secure على ملف تعريف ارتباط الجلسة بحيث لا يُرسل إلا عبر HTTPS.

<?php
ini_set("session.cookie_secure", 1);
session_start();

session.cookie_samesite

اضبط SameSite على Strict أو Lax لمنع هجمات CSRF التي تستخدم ملف تعريف ارتباط الجلسة.

<?php
ini_set("session.cookie_samesite", "Strict");
session_start();

ربط وكيل المستخدم

خزّن User-Agent في الجلسة عند تسجيل الدخول، وتحقّق منه في كل طلب لاكتشاف الاختطاف.

<?php
if (!isset($_SESSION["ua"])) {
    $_SESSION["ua"] = $_SERVER["HTTP_USER_AGENT"];
} elseif ($_SESSION["ua"] !== $_SERVER["HTTP_USER_AGENT"]) {
    session_destroy();
    die("Session invalid");
}

مهلة الجلسة

طبّق مهلات تعتمد على النشاط — وسجّل خروج المستخدمين غير النشطين تلقائيًا.

<?php
$timeout = 1800;
if (isset($_SESSION["last_active"]) &&
    time() - $_SESSION["last_active"] > $timeout) {
    session_destroy();
    header("Location: /login");
    exit;
}
$_SESSION["last_active"] = time();

session.use_strict_mode

فعّل الوضع الصارم بحيث يرفض الخادم معرّفات الجلسات غير المعروفة — فهذا يمنع تثبيت الجلسة عبر حقنها في عنوان URL.

<?php
ini_set("session.use_strict_mode", 1);
session_start();

معالجات الجلسات المخصّصة

يتيح تخزين الجلسات في Redis أو قاعدة بيانات إبطال جميع جلسات المستخدم مركزيًا ومراقبة الجلسات النشطة.

إعادة التوليد الدورية

حتى أثناء جلسة مصادقة طويلة، أعد توليد معرّف الجلسة كل 15 إلى 30 دقيقة لتقليل خطر سرقة الرمز المميّز.

الملخّص

احرص دائمًا على استخدام HTTPS، وضبط العلامات HttpOnly+Secure+SameSite، واستدعاء session_regenerate_id(true) بعد تسجيل الدخول، وتطبيق مهلات الخمول، واستخدام الوضع الصارم.

تحقّق سريعًا

ماذا تفعل session_regenerate_id(true)؟

الأسئلة الشائعة

هل درس «أفضل ممارسات أمان الجلسات» مجاني؟

نعم — نص درس «أفضل ممارسات أمان الجلسات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة PHP Academy، انتقل إلى CoddyKit PRO. تتضمن دورة PHP Academy 4 دروس في المجموع.

ماذا ستتعلم في «أفضل ممارسات أمان الجلسات»؟

امنعوا تثبيت الجلسة واختطافها باستخدام إعادة التوليد والرايات تتمرن على PHP Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ PHP Academy؟

لا تُشترط خبرة سابقة. PHP Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «أفضل ممارسات أمان الجلسات»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس PHP Academy هذا؟

نعم. كل درس في PHP Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. بدء الجلسات واستخدامها
  2. أفضل ممارسات أمان الجلسات
  3. تعيين ملفات تعريف الارتباط وقراءتها
  4. أمان ملفات تعريف الارتباط: رايتا HttpOnly وSecure
← العودة إلى PHP Academy