السلام عليكم ورحمة الله وبركاته
تمتاز برمجة الموقع الإلكترونية
عن غيرها من لغات البرمجة بكثرة مستخدمي هذا البرنامج , فهو متاح لملايين
الناس لاستخدامه وهم طبعاً زوار الموقع.
ولهذا فأننا بحاجة
لحماية هذا البرنامج وخصوصاً استهداف المواقع العربية والإسلامية من اعداء
الأمة , ولهذا سأقوم بشرح مبسط لأشهر أنواع الثغرات وكيفية الحماية منها:
1- sql injection الحقن بجمل sql
اشهر انواع الثغرات و اخطرها ! , هذه الثغره تظهر في البرامج التي تستخدم
"قواعد البيانات" في عملها , محركات قواعد البيانات مثل MySQL , MSSQL ,
Oracle و غيرها تستخدم لغه واحده من اجل استعلاماتها و تسمى هذه اللغه بـ
SQL
وهي أشد انواع الثغرات خطوراً حيث أنه يمكن اختراق الحسابات
في موقعك , على سبيل المثال , انك تملك يحتوي على اسم مستحدم وكلمة سر
لصغحات معينة , سيكون برنامجك كالاتي:
كود PHP:
$user_name="swalif";
$password="softs";
$query = "SELECT * FROM users WHERE user='$user_name' AND password='$password'";
mysql_query($query);
تخيل لو ان كلمة السر أصبحت
كود PHP:
$password="' OR ''='";
ستصبح أوامر ال sql
كود PHP:
$query = "SELECT * FROM users WHERE user='swalif' AND password='' OR ''=''
";
mysql_query($query);
بهذه الطريقة يكون قد استطاع الدخول لاقسام برنامجك المختبفة دون الحاجة لاسم المستخدم أو كلمة السر الصحيحة.
ولا يتوقف الأمر عند ذلك فقط , تخيل لو أنه قام بادخال هذه الجملة على أنها كلمة سر:
كود PHP:
$password="'; DROP DATABASE database_name;"
سيصبح الأمر البرمجي:
كود PHP:
$query = "SELECT * FROM users WHERE user='swalif' AND password=''; DROP DATABASE database_nam";
mysql_query($query);
تخيل الان ماذا حصل لموقعك ؟
تم حذف قاعدة البيانات بشكل كامل من الموقع .
2) XSS Cross site scripting
نوع آخر من الثغرات الامنيه و يعتبر من الثغرات المنتشره , اعتقد ان هذا
النوع من الثغرات أقل خطوره من الـ SQL Injection , هذا النوع من الثغرات
يسمح بحقن كود JavaScript في الصفحه .
يأتي البعض و يقول ما هي
خطورة مثل هذه الثغره ؟ ما هي الخطوره في حالة قام المخترق بحقن كود
JavaScript , حسناً جميع الامثله التي نراها في استغلال أو شرح ثغرات XSS
لا تتعدى استخدام دالة alert لطباعة كلمه في النافذه المنبثقه التي
عدهناها
و لكن الاستغلال الحقيقيه لمثل هذه الثغرات يكون بسرقة الكوكيز , و
الكوكيز عباره عن ملفات صغيره تستخدمها المواقع لتخزين معلومات عن مستخدم
الحاسوب , مثلاًً برامج المنتديات تعتمد اعتماد كبير على الكوكيز لتذكّر
المستخدم بدون الاضطرار لتسجيل دخوله في كل مره , حيث تقوم بتخزين كوكيز
يحتوي على اسم المستخدم و كلمة المرور , في الحقيقه كلمة المرور هي ما
يستهدفها المخترق , حيث يقوم بحقن الصفحه بكود JavaScript من خلال ثغرة
الـ XSS , وظيفة هذا الكود استدعاء صفحه من موقع خارجي و تمرير معلومات
الكوكيز إلى هذه الصفحه , و بالتالي إرسال معلومات الكوكيز إلى المخترق .
أما كيفية الحماية من هاتين الثغرتين فبسيط جداً , وهي اضافة دالة :
htmlspecialchars ()
وتقوم هذه الدالة بترميز حروف html كالآتي :
'&' (ampersand) becomes '&'
'"' (double quote) becomes '"' when ENT_NOQUOTES is not set.
''' (single quote) becomes ''' only when ENT_QUOTES is set.
'<' (less than) becomes '<'
'>' (greater than) becomes '>'
بالتالي تكون فد حمت برنامجك من مثل هذه أخطار.
للاستفادة أكثر من هذه الدالة يرجى الاطلاع على :
htmlspecialchars() أتمنى أن يكون الجميع قد استفاد من هذا المقال
وشكرا