• php
  • 1821
  • 20-3-2008
  • ما هو magic quotes
    هي ان يتم اضافة \ تلقائيا عند كتابة أي شيء " حمله أو رقم " يحتوى علامة الأقتباس ( ' ) . الوضع الأفتراضي : مفتوح الوضع الخطر : مغلقة السبب :
    تسبب مشاكل امنيه من ابرزها مشاكل SQL Injection و التي تسمح بإستمرار الاستعلام و استخدام اوامر SQL . و لتفادي هذه المشكله يجب استخدام الداله addslahes لإضافة السلاش \ . مثال " منقول " لنفرض لدينا هذا الاستعلام
    $query = mysql_query('SELECT * FROM table WHERE string=' . $_GET['string'] . '');
    و ـmagic quote مغلقه قد تسبب ثغره امنيه , لتفادي مثل هذه المشاكل يجب ان نتحقق اذا كانت ـmagic quote مغلقه نستخدم addslashes و اذا كانت تعمل فنحن في امان , سوف نستخدم الداله get_magic_quotes_gpc حتى نتعرف على حالة الـ magic quote .
    <?php if (get_magic_quotes_gpc() == 0) {
    $_GET['string'] = addslashes($_GET['string']);
    } $query = mysql_query('SELECT * FROM table WHERE string=' . $_GET['string'] . ''); ?>
    يمكننا استخدام هذه الفكره للمصفوفات $_GET و $_POST و $_COOKIE بشكل عام , حتى نحمي برنامجنا من ـmagic quote في حالة الاغلاق
    <?php if (get_magic_quotes_gpc() == 0) {
    $_GET = array_map('addslashes', $_GET);
    $_POST = array_map('addslashes', $_POST);
    $_COOKIE = array_map('addslashes', $_COOKIE);
    } ?>
    بالتوفيق للجميع الكاتب : php-Tiger
    كن أول من يقيم الموضوع
    12345