النتائج 1 إلى 7 من 7

الموضوع: register_global وتعريف بأخطارها

  1. #1
    عضو نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    98

    register_global وتعريف بأخطارها



    أهالي سوالف مرحبا :

    أعتقد أن هذا الموضوع يهم كل المبرمجين ولو كان معاد فأرجو المعذره للأعاده أفاده ,,

    فلنبدأ
    $_POST وهي مصفوفة تحتوي جميع المتغيرات المرسله بال POST

    $_GET وهي مصفوفة تحتوي جميع المتغيرات المرسله عبر المتصفح بالطريقة Get

    $_REQUEST وهي مصفوفة تجمع بين الأثنين GET , POST وينصح بأستخدامها

    مثال

    لدينا ملف form.html به الكود التالي

    كود HTML:
    <form action="process.php" method="POST">
    <input type="text" name="textname" /> 
    <input type="submit" name="submit" value="send"/> 
    </form> 


    الملف الثاني process.php

    كود PHP:
    <?php echo $textname?>


    للرجستر جلوبال حالتين أحداهما on والأخرى off
    خطر الجلوبال يكمن في حالتها on وذلك لأستغلال بعض الهاكرز هذه النقطة لأختراق المواقع

    ونرجع للمثال السابق

    ففي الحالة on يعمل المثال السابق 100% اما في حاله off فلا يعمل

    ما السبب ؟؟
    السبب فى خاصية الـ register_global

    فهى تمكننا من استخدام محتويات مصفوفة من المصفوفات التى تسمى مصفوفات Superglobals او Predefined وهى مصفوفات معرفة مسبقا تحتوى على بيانات معينه ومحددة

    مثلا مصفوفة $_COOKIE تحتوى على جميع الكوكيز التى قمت بزرعها فى جهاز العميل

    مصفوفة $_POST تحتوى على جميع البيانات التى تم وصلت الى الملف بطريقة post

    وهكذا



    اذن ما هى الطرقة الصحيحة لكتابةالكود؟؟
    كود PHP:
    echo $_POST['mytext']; 


    وبهذا نرى ان وظيفة register_global هى اننا تجعلنا نستخدم المتغيرات مباشرة دون استخدم المصفوفة الخاصة بها $_POST او $_GET او $_COOKIE او غيرها

    اتمنى ان اكون قد اوصلت الفكرة اليكم

    ولهذا ينصح دائما بكتابة السكريبتات بالطريقة الاساسية وهى استخدام المصفوفات فلو كانت register_global فى وضع off او وضع on فهذا لن يؤثر على السكريبت باى حال ولكن عندما نتعامل مع المتغيرات مباشرا فهذا يحصر أسكربتاتنا على أستخدام الجلوبال مما يسبب مشاكل ببعض المواقع

    وللعلم ان ملف php.ini الذى يحتوى على جميع اعدادت اللغة منذ الاصدار 4.2 نجد ان خاصية
    register_global تكون فى الوضع off


    ونستنتج من هذا أن مصممي لغة php أنفسهم ينصحون بجعل ال register_global في وضعية off

    ==
    لتغيير الوضعية بالسيرفر الشخصي
    Appserv
    من مجلد الويندوز على C: أبحث عن ملف php.ini وبداخلة أبحث عن register_global = On


    Xampp

    بداخل مجلد xampp
    Xampp/apache/bin/php.ini
    أفتح الملف php.ini وعدل ما يلزم

    أرجو أن يكون الدرس مفيد وأنتظر عرض الزوار لأخطار أخرى للجلوبال






    __________________
    PHP-TIGER
    professional php Coder
    Mu4all.com


  2. #2
    عضو نشيط
    تاريخ التسجيل
    Nov 2005
    المشاركات
    73


    ههههههههههههههههههههههههههههههههههههه


    مشكور اخوي بس انا انصح عكس ذلك

    $_REQUEST : هذه تستخدم لمتغيرات الروابط

    $_POST : هذه للمتغيرات المرسله من فورم بطريقة الارسال POST

    $_GET : هذه للمتغيرات المرسله من فورم بطريقة الارسال GET


    اذا تم ايقافة مثل ما وصفت انت

    process.php?textname

    ضع علامة ؟ بعد اسم الملف واكتب المتغير المرسل وادخل على الصفحة راح يآخذ بعتبار انك داخل الصفحة عن طريقة الفورم وانت داخل عن طريقة الروابط !



    تحياتي . غزوان





    التعديل الأخير تم بواسطة غزوان ; 20-07-2007 الساعة 09:38 AM

  3. #3
    عضو نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    98


    مشكور أخي غزوان
    بأنتظار مشاركات الأعضاء





    __________________
    PHP-TIGER
    professional php Coder
    Mu4all.com

  4. #4
    عضو سوبر نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    731


    جزاك الله خير على هذا التوضيح

    فعلاً الأمر كما ذكرت ومن الخطر تفعيلها

    ويجب على المبرمج إستخدام GET و POST بدلاً من إعتماده على الريجستر قلوبال

    اقتباس المشاركة الأصلية كتبت بواسطة غزوان
    ههههههههههههههههههههههههههههههههههههه


    مشكور اخوي بس انا انصح عكس ذلك

    $_REQUEST : هذه تستخدم لمتغيرات الروابط

    $_POST : هذه للمتغيرات المرسله من فورم بطريقة الارسال POST

    $_GET : هذه للمتغيرات المرسله من فورم بطريقة الارسال GET


    اذا تم ايقافة مثل ما وصفت انت

    process.php?textname

    ضع علامة ؟ بعد اسم الملف واكتب المتغير المرسل وادخل على الصفحة راح يآخذ بعتبار انك داخل الصفحة عن طريقة الفورم وانت داخل عن طريقة الروابط !



    تحياتي . غزوان
    لماذا السخرية ؟؟

    دعنا نتناقش نقاش علمي راقي

    وضح لماذا تنصح بعكس ذلك ؟؟





    __________________
    Saudi Wanderer
    My Blog : SWanderer

  5. #5
    عضو نشيط
    تاريخ التسجيل
    Nov 2005
    المشاركات
    73


    فعلاً الأمر كما ذكرت ومن الخطر تفعيلها

    اذا تم ايقافة مثل ما وصفت انت

    process.php?textname

    ضع علامة ؟ بعد اسم الملف واكتب المتغير المرسل وادخل على الصفحة راح يآخذ بعتبار انك داخل الصفحة عن طريقة الفورم وانت داخل عن طريقة الروابط !



    ابحث قبل ان تسأل



    تبي اوضح لك في النسخ القديمة للـ PHP ما كانت مفعله هذه الخاصية وتجي اكثر السكربتات كلها ثغرات لان المتغيرات من النماذج ومن الروابط مثل بعض ما بينها فرق بعكس اللحين لما صارت مفعله هذه الخاصية انقسم الى انواع كثيره منها 3 تم شرحها في الرد السابق











    تحياتي . غزوان






  6. #6
    عضو سوبر نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    731


    اقتباس المشاركة الأصلية كتبت بواسطة غزوان
    اذا تم ايقافة مثل ما وصفت انت

    process.php?textname

    ضع علامة ؟ بعد اسم الملف واكتب المتغير المرسل وادخل على الصفحة راح يآخذ بعتبار انك داخل الصفحة عن طريقة الفورم وانت داخل عن طريقة الروابط !



    ابحث قبل ان تسأل



    تبي اوضح لك في النسخ القديمة للـ PHP ما كانت مفعله هذه الخاصية وتجي اكثر السكربتات كلها ثغرات لان المتغيرات من النماذج ومن الروابط مثل بعض ما بينها فرق بعكس اللحين لما صارت مفعله هذه الخاصية انقسم الى انواع كثيره منها 3 تم شرحها في الرد السابق











    تحياتي . غزوان
    أنت تتحدث فيما تجهل , وليتك بحثت قبل الإجابة ,, أو على الاقل إستفدت من الكلام الذي كتبه الأخ asoft

    عموماً ,, نحن هنا نستفيد من بعض ونتعلم , ولا يتعالى على العلم إلا جاهل ,,

    تفضل هنا :
    http://www.php.net/manual/en/ini.cor...gister-globals

    إبتداءاً من PHP 4.2.0 أصبحت قيمتها OFF بشكل إفتراضي ,, أي تم تعطليها
    في السابق كانت مفعلة بشكل إفتراضي ,,

    أنت خلطت الأمور ببعضها ,, وماذكرته أنت هو العكس تماماً ,, راجع الموضوع الأساسي للتتضح لك الأمور ,,
    تفضل هنا أيضاً :
    http://www.php.net/manual/en/security.globals.php

    أتمنى أن تكون الصورة قد وضحت الآن ؟

    تفعيلها يعني تعيين أي قيمة في الرابط كمتغير ,, وتعطيلها يعني أن أي قيمة في الرابط أو غيره يتم الوصول لها بالطريقة الصحيحة فقط ولن يتم إعتبارها كمتغير





    __________________
    Saudi Wanderer
    My Blog : SWanderer

  7. #7
    عضو نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    98


    مشكور أخي S.Wanderer جزاك الله خيرا
    وأتشرف بوجودك بالموضوع

    لي تعليق بسيط : php4 و php5 أختلاف بالأسم أو الرقم يجعل بالضرورة وجود أختلافات بالوظائف
    قد تصير هذه الأختلافات غير ملحوظة أو تكاد تكود معدومة لكنها تبقى أختلافات " أو ما نسميها تطوير للنسخ السابقة "
    انا شخصيا أعتبر أن مجرد تغيير الخاصية Register_global من On الي Off أختلاف يدل على تطور اللغة .

    صدق أخي S.Wanderer

    تفعيلها يعني تعيين أي قيمة في الرابط كمتغير ,, وتعطيلها يعني أن أي قيمة في الرابط أو غيره يتم الوصول لها بالطريقة الصحيحة فقط ولن يتم إعتبارها كمتغير






    __________________
    PHP-TIGER
    professional php Coder
    Mu4all.com





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض