freeCodeCamp/guide/arabic/php/security/session-identifier-acquirement/index.md

4.1 KiB

title localeTitle
Session Identifier Acquirement معرف الجلسة

معرف الجلسة

معرّف جلسة العمل يعد "التعرّف على هوية" نقطة ضعف ناتجة عن قدرة أحد المهاجمين على تخمين معرّف جلسة المستخدم أو استغلال الثغرات الموجودة في التطبيق نفسه أو في مستعرض المستخدم للحصول على معرف جلسة العمل. هذا الهجوم هو شرط أساسي للقيام بهجوم خطف جلسة.

مثال

لدى أحد المهاجمين بعض الخيارات لتنفيذ هجوم اكتساب معرّف جلسة العمل.

  • تخمين المعرّف: يمكن أن يسمح معرف جلسة عمل قصيرة وقابلة للتخمين للمهاجم بإجبار معرّف جلسة العمل على الإجبار.
  • مهاجمة المتصفح: في حال قمت بتخزين معرف جلسة العمل الخاص بك في ملفات تعريف الارتباط بالمتصفح - إذا كان موقع الويب الخاص بك عرضة للعمليات النصية عبر الموقع ، يمكن للمهاجم استخدام الثغرة لجمع ملفات تعريف معرف جلسة العمل والوصول إلى مناطق مستوى الامتياز العالي (على سبيل المثال لوحة المشرف) .
  • تغيير المعرّف إلى اختيار المهاجم: في الإصدارات الأقدم من PHP ، تمكنت من تعيين معرف جلسة في عنوان URL. يتم تعطيله افتراضيًا الآن ، إذا تأكدت من أن session.use_trans_sid غير صحيح. هذه ليست قضية مشتركة بعد الآن ، ومع ذلك لا يزال يمكن أن يحدث ، أفضل آمنة من آسف.

الدفاع ضد "معرّف جلسة العمل" هجمات الاكتاف في PHP

للدفاع ضد هجمات معرف هوية الجلسة ، يجب عليك التحقق من محاولة الوصول إلى الجلسة مقابل عدة عوامل للتأكيد على ما إذا كان الوصول شرعيًا ولتجنب المستخدم من اختطاف جلسة المستخدم بنجاح. فيما يلي مثال للتنفيذ يمكن أن يساعد في تخفيف آثار هجوم اكتساب معرّف جلسة العمل. ويتحقق من عنوان IP و "وكيل المستخدم" ، وإذا انتهت الجلسة "إزالة جلسة عمل قبل الحصول عليها".

`<?php session_start();

// Does IP Address match? if (_SERVER['REMOTE_ADDR'] != _SESSION['ipaddress']) { session_unset(); session_destroy(); }

// Does user agent match? if (_SERVER['HTTP_USER_AGENT'] != _SESSION['useragent']) { session_unset(); session_destroy(); }

// Is the last access over an hour ago? if (time() > ($_SESSION['lastaccess'] + 3600)) { session_unset(); session_destroy(); } else { $_SESSION['lastaccess'] = time(); } `

نصائح:

  • تخزين الكثير من المعلومات حول الجلسة الحالية (سلسلة وكيل المستخدم ، عنوان IP ، آخر وقت وصول ، إلخ)
  • تحقق من كل طلب مقابل المعلومات المخزنة حول الجلسة (هل تتطابق؟ إذا لم تحذف الجلسة وتطلب من المستخدم تسجيل الدخول مرة أخرى)
  • لا ينبغي أن تستمر الجلسات إلى الأبد - يجب أن تنتهي صلاحيتها عند نقطة معينة للحفاظ على أمان جلسة العمل.
  • يقيّد السعر عدد الجلسات التي يمكن للمستخدم محاولة الوصول إليها (هل حاول المستخدم الوصول إلى أكثر من 1000 جلسة غير صالحة؟ فرص هي التخمين - منع عنوان IP من تجربة أي جلسات إضافية لبضع ساعات).

معلومات اكثر: