السلام عليكم ورحمة الله وبركاته
تمتاز برمجة الموقع الإلكترونية عن غيرها من لغات البرمجة بكثرة مستخدمي هذا البرنامج , فهو متاح لملايين الناس لاستخدامه وهم طبعاً زوار الموقع.
ولهذا فأننا بحاجة لحماية هذا البرنامج وخصوصاً استهداف المواقع العربية والإسلامية من اعداء الأمة , ولهذا سأقوم بشرح مبسط لأشهر أنواع الثغرات وكيفية الحماية منها:
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()
أتمنى أن يكون الجميع قد استفاد من هذا المقال
وشكرا