ما هي ثغرة xss وما مدى خطورتها وكيف أحمي موقعي منها

1 إجابات
profile/براءة-العلي-1
براءة العلي
بكالوريوس في هندسة اتصالات (٢٠١٦-٢٠٢١)
.
٢٣ أبريل ٢٠٢١
قبل ٤ سنوات
أصبحت إحدى أشهر ثغرات تطبيقات الويب ألا وهي ثغرات XSS أو Cross-Site Scripting فهي تأتي في المرتبة الثالثة حسب تصنيف موقع OWASP، لأشهر وأكثر 10 ثغرات انتشاراً لعام 2013 وقد تم اختصارها بهذا الشكل لكي لا تتعارض مع اختصار CSS وهي اختصار ل Cascading Style Sheets وهي لغة التنسيق لصفحات الويب وتهتم بشكل وتصميم المواقع.

تؤثر بشكل أكبر على جانب العميل الـ Client أو المستخدم ولا تؤثر بشكل مباشر على المواقع أو الخوادم إلا أن هذا لا يمنع من أنها كانت من الأسباب الأساسية في اختراق أكبر الشركات والمواقع كما حدث مع بعض المنتديات الخاصة بموقع Ubuntu وقد تم استغلال وتهكير معلومات لأكثر من مليون مستخدم على الموقع، كما وتعرض موقع أبل الخاص بالمطورين في نفس هذه الفترة إلى الاختراق أيضاً.

تكمن خطورة ثغرة xss في أن من يقوم بالاختراق يعمل على التعديل وحقن أو ادخال كودات جافا سكريبت أو ما تسمى "بهجمات البرمجة النصية" على محتوى مواقع الويب الموثوق بها والسليمة، كما أنه يقوم بعمل صفحات مزورة وبنفس الرابط للصفحة الأصلية، يقوم البعض باستغلالها عن طريق سرقة محتويات ملف ال Cookies الخاصة بالمستخدمين وهي الملفات التي تحتوي على معلومات يستفيد منها الخادم بحيث تتيح له تحديد هوية المستخدم عند زيارته لصفحة الويب مرة أخرى فيتم عن طريقها تعقب جميع تحركات المستخدم ومراقبة تصرفاته على شبكة الإنترنت وهو ما يعد أخطر استغلال لما فيه من انتهاك لخصوصية وحرية المستخدم، فأثناء تصفحه للموقع تكون قد سرقت بياناته من دون أن يشعر أصلا بذلك كما استخدامها لبعض البرامج الضارة مثل backdoor, malwares تتيح سرقة بعض هذه البيانات كأرقام البطاقات، بيانات الاعتماد وكلمات المرور.

لقد تم تصنيف طرق الاختراق التي تسمح بها هذه الثغرة إلى مجموعات كالتالي:

  • Stored XSS: تقوم هذه الطريقة على مبدأ أن يتم تخزين مثل هذه البرامج النصية المحقونة بشكل دائم في الخادم الهدف، مثل قواعد البيانات أو Data base، سجلات الوصول، التعليقات وغيرها وعندما يطلب المستخدم أيًا من هذه البيانات فسيتم الحصول على هذه النصوص الضارة.

  • Reflected XSS: يقوم البرنامج النصي المحقون بالرجوع من خادم موقع الويب، على صور عديدة كرسائل الخطأ أو نتائج البحث أو أي استجابات أخرى بحيث تحتوي هذه الردود كليًا أو جزئيًا على المحتوى الذي أدخله المستخدم في المتصفح.
    ومن الممكن أيضًا من خلال وسائل مختلفة مثل رسائل البريد الإلكتروني أو مواقع الويب الأخرى عندما يتم إقناع المستخدم بالنقر فوق ارتباط ضار ظناً منه أنه يأتي من خادم موثوق به، أو بأن يقوم بتصفح ملف ضار في الموقع، عندها يتم نقل البرنامج النصي المحقون إلى الموقع المعرض للخطر وينعكس على متصفح المستخدم.

  • DOM-based XSS: في هذه الحالة لا يتم تضمين البيانات الضارة التي يرسلها المخترق بشكل صريح في صفحة الاستجابة لخادم الويب، ولكن سيتم الوصول إليها في شكل متغيرات بواسطة البرنامج النصي js في الصفحة، يتم تصنيف هذا النوع على أنه "xss من جانب العميل"، أما في النوعين الأولين من هجمات xss، تحتوي صفحة استجابة الخادم صراحةً على محتوى ضار، والذي تم تصنيفه على أنه "xss من جانب الخادم".

سواء كان النوع Stored أو R Reflected و DOM-based، فإن عواقب الهجوم هي نفسها، أما الاختلاف فيكمن فقط في الطريقة التي تصل بها هذه البرامج الضارة إلى الخادم.

  • تؤثر هذه المشكلة على كل من الطرفين سواء المستخدم أو المبرمج فمن جهة المستخدم يجب أن تكون حريصاً في التعامل مع المواقع واستخدام آخر إصدار من المتصفح التي تريد الدخول إليه ولا تقوم فوراً بإدخال بياناتك الشخصية كبيانات الحسابات الخاصة بك والبيانات الخاصة بالفيزا كارد أو الدفع الإلكتروني.

  • قم بمسح ملفات ال Cookies الخاصة بك من المتصفح فبعد أن تقوم بفتح غوغل كروم، قم بالنقر على زر القائمة أعلى الشاشة ثم اختر الأمر إعدادات، انزل للأسفل ثم انقر خيار إظهار الإعدادات المتقدمة، انقر خصوصية ثم اختر محو بيانات التصفح وتأكد من أن ملفات الكوكيز وبيانات الموقع والمعلومات الإضافية الأخرى تم تحديدها، أما من انترنت إكسبلورر، انقر فوق زر أدوات، خيارات الانترنت، تأكد أنك في علامة التبويب عام، ثم اختر حذف من خيار سجل التصفح، تأكد من تحديد خيار الكوكيز ثم اختر حذف.

  • لا تقم بالنقر على الروابط غير الموثوق بها والقادمة من طرف مجهول فهي إحدى أخطر الأسباب للوصول إلى بياناتك.
    كما لابد على المبرمج التأكد من صحة مدخلاته وخلوها من الأخطاء التي تمكن المهاجم من استغلال هذه الثغرة ويقوم بفلترة مدخلاته.
    ولمعلومات أكثر حول طرق الحماية قم بزيارة الموقع التالي: https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html