درس : دالة php لحماية جميع المدخلات والمخرجات من خطر sql injection
السلام عليكم ورحمة الله وبركاته
اخواني واخواتي اليوم درسنا قيّم جدا لجميع المبرمجين وهو يشرح كيفية برمجة دالة خاصة لحماية السكربت الذي تقوم ببرمجته … الدالة تقوم بعمل فلتر لجميع المدخلات والمخرجات في البرمجية ان كان عن طريق POST او GET او ادخال البيانات واخراجها من قاعدة البيانات .
هذا الدرس للمتسوى المتقدّم في لغة php وفيه سنشرح كيفية بناء هذه الدالة مع امثلة على استعمالها بالتفصيل .
نبدا بسم الله
كود الدالة :
Code :
<?
function secu ($text,$type)
{
if ($type == ‘itext’) // ادخال نص عادي للقاعدة
{
$text = trim(addslashes(htmlspecialchars($text)));
}
elseif ($type == ‘num’) // او ادخال للقاعدة POST او GET استعمال اي قيمة عددية في
{
$text = trim(intval($text));
}
elseif ($type == ‘gtext’) // GET استقبال اي نص بواسطة
{
$text = trim(htmlspecialchars($text));
}
elseif ($type == ‘print’) // طباعة اي بيانات بعد استخراجها من القاعدة
{
$text = trim(stripslashes($text));
}
elseif ($type == ‘ibtext’) // ادخال نصوص كبيرة للقاعدة مثل نصوص المقالات او الاخبار
{
$text = trim(addslashes(nl2br(htmlspecialchars($text))));
}
return ($text);
}
?>
شرح الدالة : نقوم باستدعاء الدالة ونمرر اليها متغيرين … الاول وهو النص المراد حمايته انو تصفيته والثاني هو نوص الفلترة التي نريد ان تقوم بها الدالة … وبجانب كل نوع لفلتر شرح طريقة عمله ولماذا يستعمل .
استدعاء الدالة :
Code :
<?
$title = secu ($_POST['title'],’gtext’); // لحماية نص معين قمنا بجلبه من المتصفح
$id = secu ($_POST['id'],’num’); // لحماية رقم معين بأي موضع كان
$text = secu ($_POST['text'],’ibtext’); // لحماية نص كبير قبل ادخاله لقاعدة البيانات
?>
اتمنى ان كل من اراد الفائدة قد حصل عليها والرجاء عدم التردد بحال وجود اي سؤال او استفسار وسنقوم بالرد عليه باسرع وقت ممكن .
اخوكم المحب : EbNCaNa
سلامات
[...] الاحوال الدالة الي حكيتلك عنها فيها هالخاصية ايضا … تقضل شرح مفصل للدالة الى الامام اخوي . __________________ EbNCaNa اخوكم ابن قانا درس : [...]
كيف اقوم بحماية هذه السطور البرمجية [ خاصة باضافة التعليقات ] - سوالف سوفت
اغسطس 26, 2008 في 4:09 م