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