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

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

فلنبدأ

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

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

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

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

<form action="process.php" method="POST">

<input type="text" name="textname" />

<input type="submit" name="submit" value="send"/>

</form>

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

Code:
<?php echo $textname; ?>


للرجستر جلوبال حالتين أحداهما on والأخرى off

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



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



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



ما السبب ؟؟

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



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



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



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



وهكذا







اذن ما هى الطرقة الصحيحة لكتابةالكود؟؟

Code:
<?
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 وعدل ما يلزم




    

لا يمكنك اضافة تعليق

يجب عليك تسجيل الدخول لاضافة تعليقك




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


أضف الدرس الى موقعك