في عصر الإنترنت، أصبح من الممكن الوصول إلى المعلومات والتطبيقات من أي مكان في العالم. ومع ذلك، فإن هذا الانتشار الكبير للويب جعل المستخدمين عرضة لخطر الهجمات الإلكترونية ومن أخطر هذه الهجمات هجمات حقن البرامج النصية عبر مواقع الويب (XSS) والتي يمكن أن تكون لها عواقب وخيمة، في هذا المقال سنتعرف على ثغرة XSS وطرق الحماية الخاصة بها
ما هي ثغرة XSS ؟

ثغرة XSS، أو Cross-Site Scripting، هي واحدة من أشهر الهجمات السامة على الويب.
تتمثل هذه الثغرة في إدخال سكريبتات خبيثة إلى موقع الويب، مما يتيح للمهاجم تنفيذ أوامر خبيثة على أجهزة الزوار الذين يتفاعلون مع الموقع المصاب.
بمعنى آخر، يتم استغلال موقع الويب المصاب كوسيلة لاختراق وإيذاء الزوار الذين يثقون فيه.
في هجمات XSS، لا يكون المهاجم يستهدف الموقع المصاب بشكل مباشر، ولكن يستغله للوصول إلى الزوار الذين يثقون في الموقع. يقوم المهاجم بزرع سكريبتات خبيثة في الموقع المصاب، وعندما يتفاعل الزائر مع الموقع، يتم تنفيذ هذه السكريبتات في متصفحهم، مما يعرضهم للخطر.
باختصار، ثغرة XSS تتيح للمهاجم حقن سكريبتات ضارة في موقع الويب، مما يؤدي إلى تنفيذ هذه السكريبتات في متصفح الزوار، مما يعرضهم لخطر الاختراق والتجسس وسرقة البيانات.
ما هي ثغرة XSS وأنواعها :
Reflected XSS:
من أبسط الأنواع هو ناتج عن عدم فلترة دخل المستخدم لنرى هذا المثال:
عندما نقوم بالبحث عن شيء ما في موقع فنذهب الى حقل البحث و نكتب ما نريد البحث عنه وعندما نرى الاسم الذي بحثنا عنه معروض في الموقع هنا نقوم بتجربة حقن اكواد JavaScript وبعدها ننسخ الرابط و نرسله الى الهدف.
Stored XSS:
مثل النوع السابق ولكن هذا النوع عالي الخطورة و ضرره لا يقتصر على المستخدم فقد يؤثر على كل زوار الموقع وعلى الموقع أيضاً لأنه يخزن داخل الموقع.
على سبيل المثال: الحقن في حقل البحث لا يخزن داخل الموقع لكن عند الحقن في حقل التعليقات فالتعليقات تخزن في قاعدة البيانات و تظهر لكل الزوار وهذا الأمر سيوثر على أي شخص يزور الموقع وهنا لسنا بحاجة لإرسال الرابط المحمل بالاكواد يكفي زيارة الموقع فقط من قبل الهدف ليتم تنفيذ الكود ضمن متصفحه.
DOM-based XSS :
هذا النوع يشبه reflected xss الى حد كبير لكنه يحدث بشكل كامل في جهة المستخدم حيث يقوم المخترق بحقن dom داخل الصفحة مثال يمكن إضافة form مع action يرسل الى موقع آخر .
الاخطار الناتجة عن XSS attack :
سرقة الجلسة :
يمكن استخدام هذا الهجوم لسرقة cookie الخاص بالجلسة وتسجيل الدخول باسمك و يتم ذلك عن طريق عمل إعادة توجيه الى موقع آخر يكون مجهز من قبل المخترق يستقبل ال cookie الخاصة بالموقع المصاب.
الاحتيال والتصيد :
يمكن استخدام النوع الثالث للقيام بوضع form و إرسال المعلومات إلى موقع خاص بالمخترق وأنت تظن انها لوحة تسجيل الدخول الخاصة بالموقع الرسمي وعندها لن يحتاج المهاجم لسرقة الجلسة فقد حصل على كلمة السر بشكل مباشر منك
تشويه الموقع:
يمكن استخدام أكواد javascript لتشويه الموقع بالنسبة للمستخدمين.
الحماية من XSS :
في هذا القسم من المقال سوف نقدم لك (المستخدم العادي) بعض النصائح لتجنب الوقوع في مثل هذا الهجوم بالإضافة لبعض النصائح الخاصة لمطوري المواقع.
بالنسبة للمستخدم:
عدم فتح أي رابط لا تعلم مصدره يمكنك استخدام إضافة noscript.
أو يمكنك الذهاب الى الاعدادات الخاصة بالمتصفح وتعطيل خيار استخدام javascript .
بالنسبة للمطور:
كمطور ويب تقع عليك مسؤولية حماية المستخدم من المخاطر وليس فقط حماية الموقع
1- يجب التأكد من تطبيق فلاتر مناسبة على جميع حقول الإدخال الخاصة بالموقع
2- يفضل تفعيل httponly flag و إضافته لعدم السماح بقراء ال cookie عبر اكواد JavaScript
3- تفعيل secure flag لكي لا يتم ارسال ال cookie إلا عن طريق HTTPS
في النهاية:
لا يوجد نظام آمن بشكل مطلق ولكن يمكننا التخفيف من المخاطر المحتملة ومن المهم جداً نشر التوعية وثقافة الأمن السيبراني على جميع المستويات، كما يجب الإشارة إلى أمر مهم آخر وهو: إن كنت مبرمج أو مطور ويب فهذي النصائح لا تكفي ويجب عليك التوسع بشكل أكبر لمعرفة كل التفاصل الخاصة بهذه الثغرة والاجراءات المضادة لها.