السلام عليكم
لا اعرف عن هذه الثغرة الكثير
ولم اعلم عنها حتى قام احد الاخوان بطرح موضوع في المجلة
http://www.rafiaphp.com/forum.php?action=view&id=132
ثم قام الاخ daif جزاه الله كل خير بارسال رسالة خاصة تحتوي على مثال واقتراح لحل المشكلة
كل ما فهمته استخدام المتغير الذي يرسل الى القاعدة وتغييرة الى اوامر اخرى
احد الحلول هو التاكد من وجود نتيجة بعد الاستعلام وهذا صعب بنسبة لسكربت كبير مثل المجلة
لكن قمت بكتابة دالة اقوم بادخال مصفوفة تحتوي على مفاتيح المتغيرات التي يتم استعلام القاعدة بواسطتها اذا لم يكن رقم والا تعيد خطاء وتوقف العملية
الدالة
كود PHP:
<?php
function check_url($urlarr)
{
while (list($key, $value) = each ($urlarr))
{
if (!empty($key))
{
if (eregi ('[^0-9]', $value))
{
print"خطأ في الطلب";
exit;
}
}
}
}
$urlarr = array($_rafia,$id,$cat_id,$userid);
check_url($urlarr);
?>
المصفوفة $urlarr تحتوي على مفاتيح المتغيرات التي يتم الاستعلام بواسطتها كل ما عليك هو اضافة جميع المفاتيح التي تستخدمها بشرط ان تكون رقم اصلا
وبعد التجربة على المثال الذي ارسلة الاخ daif نجحت في توقيف الاومر
وهذا يتناسب مع المجلة لكن هل هذا يكفي ؟
اذا كان يكفي اتمنى ان يستفيد من الدالة كل من يحتاجها او يبحث عن حل
اذا لم يكن يكفي ارجو توضيح الطريقة بالكامل حتى نتمكن من ايجاد حلول او على الاقل توضيح الطرق التي يمكن استخدام هذه الثغرة