المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : [دالة] تأمين النص من اخطار Xss و Sql Injection


عاشق الحب
08-11-2007, 08:43 AM
الدالة بسيطة جداً وتكفي بصراحة فيما يخص تأمين اي نص مدخل من قبل الزائر أو العضو ضد أخطار XSS و SQL INJECTION او باختصار (اختراق الموقع).. فأحببت عرضها لكم

رمز PHP:
function make_safe($str)
{
return htmlspecialchars(addslashes(trim($str)));
}



طريقة الاستخدام:

رمز PHP:
$safe_string = make_safe($_GET['user_input']);



بعد ذلك يمكنك استخدام النص بامان في اي استعلامات او طباعة للشاشة بدون قلق


ملاحظه :/

بخصوص تأمين قيم المتغيرات فيجب تأمين جميع ما يتم استقدامه من المستخدم سواءاً عن طريق المصفوفة $_GET أو المصفوفة $_POST

ولكن تختلف طريقة المعالجة فمثلا لو كنت تتوقع ان يحتوي المتغير على INTEGER أو عدد صحيح فيستحسن استخدام الدالة intval حيث ترجع الدالة القيمة الصحيحة للمتغير أو القيمة صفر لو كان في المتغير اي شيء غير عدد صحيح..

أما بالنسبة للنصوص فيستحسن استخدام الدالة addslashes() مع trim() عند تنفيذ الاستعلامات (لتجنب أخطار SQL INJECTION)
و
htmlentites() و trim() عند الطباعة للمتصفح (لتجنب أخطار XSS)


مثال آخر

التطبيق على المتغيرات التاليه
رمز PHP:
$row[vi]

$row[id]

$row[name]




التطبيق

رمز PHP:
$row['vi'] = make_safe($row['vi'];
$row['id'] = make_safe($row['id'];
$row['name'] = make_safe($row['name'];

نادى كل العرب
03-12-2008, 07:57 PM
شكرا جزيلا على مجهودتك