|
||||||
|
للتسجيل اضغط
هـنـا
« آخـــر الــمــواضــيــع » |
|
||||||||||
|
||||||||||
|
||||||||||
| أصول برمجة دروس ومشاريع برمجية php - c - asp - perl - python - java script - ajax - bash |
![]() |
|
|
LinkBack | أدوات الموضوع | انواع عرض الموضوع |
|
|
#1 (permalink) |
|
عضو جديد
تاريخ التسجيل: Sep 2004
العمر: 29
المشاركات: 2
![]() ![]() ![]() ![]() ![]() ![]() |
السلام عليكم ورحمة الله وبركاته
الحمدلله والصلاة والسلام على رسول الله وعلى آله وصحبه أجمعين يعلم اي مبرمج أن استخدامه لخاصية register_globals يُعد شيئا محفوفا بالمخاطر للكود الذي يكتبه في برنامجه .. ولكن في الحقيقة من يستخدمون ال register_globals او بمعني ادق من يعتمدون عليها في برمجياتهم هم نوعين : الأول مبتدئ أو هاوي للبرمجة والثاني محترف يستطيع استخدامها ولكن مع تفادي خطورتها . ملحوظة ( معظم مدراء السيرفرات يقومون بتعطيلها register_globals علي سيرفراتهم ) . أين يكمن الخطر .؟ في وضع متغير ( عام ) في دالة أو في السكريبت عموماً دون وجود شروط أو عمليات تحقق من صحة القيمة المعطاة له .. دون الدخول في تفاصيل معقدة ولتبسيط الأمر تماماً دعنا ننظر لهذا المثال وهو من الصفحة الخاصة بالـ register_globals بموقع php.net الرسمي لهذه اللغة . كود PHP:
وبعداغلاق جملة الشرط if تم استدعاء المتغير وهو متغير عام global في جملة if الثانية ومعطي القيمة (؟؟؟) أي أنك لو لاحظت أنه لم يأخذ اية قيمة في الجملة الثانية ومن هنا يمكن اي مخترق ان يعتمد علي الـ register_globals إن كانت مفعلة علي السيرفر ويحقق اختراق بتنفيذ الطلب مثلا علي هذه الصورة [فقط الأعضاء المسجلين والمفعلين يمكنهم رؤية الوصلات . إضغط هنا للتسجيل] هنا سيتم تنفيذ باقي الكود الموجود في جملة الشرط if الثانية وهو : كود PHP:
وقد يكون هذا الملف هام ويحتوي معلومات مهمة .. وهنا يكمن الخطر في تفعيلregister_globals علي السيرفرات او في الاعتماد علي استخدامها من قبل المبرمجين . في النهاية : للأخوة المبرمجين : تستطيعون عمل كود محمي في مرحلة الكتابة - أي أثناء كتابتك للكود تأكد من قيم كل المتغيرات وتأكد من مراحل التأكد من القيم الممررة لهذه المتغيرات من خلال المتصفح . ارجو ان يكون الموضوع مفيداً علي الرغم من بساطته .. ولكم اغلي تحياتي التعديل الأخير تم بواسطة فارس المستقبل ; 05-03-2009 الساعة 08:35 AM |
|
|
|
|
|
#3 (permalink) |
|
رجل أقـل معـرفـة
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() تاريخ التسجيل: Jun 2004
الدولة: مــصـــــر
العمر: 29
المشاركات: 1,160
![]() ![]() ![]() ![]() ![]() ![]() |
وعليكم السلام ورحمة الله وبركاته
مرحبا بك ايها الفارس .. سعدت بحضورك وجدا وشكرا لهذه الفائدة الكبيرة وموضوع مميز للغاية وندر ان تراه عالشبكة بمثل هذا السرد اسمح لي باضافة مثال اخر لخطورة تفعيلها ووباستخدام دالة include انظر لهذا المثال : كود PHP:
[فقط الأعضاء المسجلين والمفعلين يمكنهم رؤية الوصلات . إضغط هنا للتسجيل] وهذه ايضا تشترط أن تكون قيمة allow_url_fopen أن تكون on وهي غالبا كذلك في معظم السيرفرات . وهكذا ,,,,,,,,,, أما عن تفادي مخاطرها : فعلي المستوي السيرفر يجب تعطيلها .. في ملف php.ini ويمكن تفعيلها لموقع منفرد في حال طلب شخص او عميل لها لتشغيل سكريبت خاص به علي موقعه مع تحمله المسئولية منفردا. أيضا علي مستوي البرمجة واضافة علي ما ذكرته انت اخي .. يستطيع المبرمج استدعاء المتغيرات باستخدام : $_GET أو $_POST أو بالنسبة للجلسات باستخدام $_SESSION['var'] وهكذا بدلا من استخدام المتغير مباشرة علي الصورة $var=any سعدت بحضورك وأتمني أن أراك هنا كثيراً أخوك المحترف ,
__________________
![]() قيل : الدنيا كلها ظلمات إلا موضع العلم … والعلم كله هباء إلا موضع العمل … والعمل كله هباء إلا موضع الإخلاص … وقيل .. قيّدوا العلم بالكتب .. وقيدوا النعم بالشكر . |
|
|
|
|
|
#4 (permalink) |
|
عضو نشيط
![]() ![]() ![]() تاريخ التسجيل: Apr 2009
العمر: 24
المشاركات: 104
![]() ![]() ![]() ![]() ![]() ![]() |
قبل اي شيء نورت منتدانا اخي الكريم : فارس المستقبل وأهلا بك بين اخوانك ،،،
اريد اضافة بعض الأمور بعد اذن الجميع طبعاً واعتقد انها في صميم الموضوع : بخصوص allow_url_fopen التي تم الحديث عنها منذ قليل فعند السماح لها بالتشغيل وسنعلم الطريقه بعد قليل بكده احنا سمحنا لبعض الدوال مثل file_get_contents() انه يسحب ملف من سيرفر تاني او ينسخه او ينشاه طبعاً بواسطة انه ينسخ ملف من الممكن طبعاً انه يكون شيل وبكده هيعمل الواجب مع الموقع اللي عنده المشكله دي طبعاً لو كان السيرفر بيسمح بالتخطي من مستخدم لآخر لو كان مثلاً php handler متظبط على انه dso هيظبط الناس اللي عالسيرفر واحد ورا التاني اما لو كان fcgi مثلاً او suphp من المؤكد انه يمنع التخطي لأنه بيستخدم اسلوب chroot وبذلك لو حاول التخطي آخره المجلد الخاص به وهو الهوم الخاص باليومزر اللي قدر يوصله اما بخصوص انك تسمحله او عايز تمنعه vi /usr/local/lib/php.ini بعد كده ابحث عن كود:
allow_url_fopen = 'off' ولو حبيت تشغلها يفضل جداً تشغلها على مستخدم واحد بس من خلال ملف الأباتشي : كود:
vi /usr/local/apache/conf/httpd.conf كود:
vi /etc/httpd/conf/httpd.conf كود:
php_admin_flag allow_url_fopen on كود:
service httpd restart كود:
httpd restart وبكده ممكن طبعاً يعمل انكلود لحاجه عندك بملف بره السيرفر بكده ممكن يعمل انكلود لحاجه تضرك فمن الأفضل نغلقها او استعمل Suhosin عشان تحمي نفسك من المشاكل دي . طبعاً كيفية اغلاقه او تشغيله نفس السابق بالظبط مع تغيير allow_url_include بدل allow_url_fopen تحياتي لكم وآسف على الإطاله ،،، |
|
|
|
![]() |
| مواقع النشر (المفضلة) |
| الكلمات الدلالية (Tags) |
| php security, register_globals, sensitive |
| الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1) | |
عدد الأعضاء الذين شاهدوا هذا الموضوع : 10
|
|
| , , , , , , , , , |
| أدوات الموضوع | |
| انواع عرض الموضوع | |
|
|
المواضيع المتشابهه
|
||||
| الموضوع | كاتب الموضوع | المنتدى | مشاركات | آخر مشاركة |
| خطورة النوم لأكثر من 9 ساعات | أبو العبد | أصول الطبي | 12 | 03-09-2007 10:32 AM |
![]() |
![]() |