مسرد XSS (Cross-Site Scripting)

ما هو XSS (البرمجة عبر المواقع)؟

البرمجة عبر المواقع، أو XSS، هي خلل أمني في المواقع الإلكترونية يسمح للمهاجمين بإضافة سكريبتات ضارة إلى صفحات الويب. في معظم الأحيان، تكون هذه السكريبتات مكتوبة بلغة JavaScript.

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

يُدرج XSS، مثل حقن SQL، بانتظام في OWASP Top 10 كواحد من أكثر الثغرات شيوعًا في تطبيقات الويب.

plexicus-xss-attack-ilustration

كيف يعمل XSS؟

غالبًا ما يستهدف XSS تطبيقات الويب التي لا تتحقق وتقوم بتنظيف مدخلات المستخدم بشكل صحيح.

على سبيل المثال، إذا كان صندوق التعليقات يسمح بـ HTML أو JavaScript الخام دون أي تصفية، يمكن للمهاجم إضافة كود مثل هذا:

<script>alert('تم الاختراق!');</script>

عندما يشاهد الضحايا الصفحة، يتم تشغيل الكود الضار داخل متصفحهم.

لماذا يهم XSS في الأمن السيبراني

يمكن أن يؤدي XSS إلى اختراق أكبر:

  • الاستيلاء على الحساب (سرقة كوكيز الجلسة لانتحال شخصية المستخدمين)
  • سرقة البيانات (التقاط مدخلات النماذج مثل كلمات المرور أو بطاقات الائتمان)
  • هجمات التصيد (حقن نماذج تسجيل دخول مزيفة)
  • توزيع البرمجيات الخبيثة (إعادة توجيه المستخدمين إلى مواقع ضارة)

أنواع XSS

  1. XSS المستند إلى DOM
  2. يحدث الهجوم بالكامل في المتصفح عن طريق التلاعب بنموذج كائن المستند (DOM) دون إشراك الخادم.
  3. XSS المخزن
  4. يتم تخزين البرنامج النصي الضار بشكل دائم على الخادم، مثل قاعدة البيانات أو صفحة الملف الشخصي.
  5. XSS المنعكس
  6. يتم عكس البرنامج النصي من خادم الويب (على سبيل المثال، في عنوان URL أو رسالة خطأ)، وسيتم تنفيذ البرنامج النصي عندما ينقر الضحية على الرابط المصمم من قبل المهاجمين.

كيفية منع XSS

  • تنقية المدخلات وترميز المخرجات: دائمًا تنظيف بيانات مدخلات المستخدم قبل معالجتها، وتحويل مدخلات المستخدم إلى تنسيق آمن.
  • استخدام سياسة أمان المحتوى (CSP): تقيد ما يمكن تنفيذه من البرامج النصية في المتصفح.
  • تجنب eval() وجافا سكريبت المضمنة: لتقليل مخاطر الحقن.
  • اختبار الأمان (DAST/IAST): إجراء اختبارات الأمان لاكتشاف الثغرات مبكرًا.

مثال في حالة واقعية - دودة سامي (MySpace، 2005)

ما حدث: نشر سامي كامكار ملفًا شخصيًا على MySpace يحتوي على حمولة XSS مخزنة. عندما شاهد المستخدمون الآخرون الملف الشخصي، تم تشغيل الحمولة في متصفحاتهم، حيث (أ) أضافت سامي كصديق، (ب) أضافت عبارة “سامي هو بطلي” إلى ملفاتهم الشخصية، و (ج) نسخت نفسها إلى صفحات ملفات هؤلاء المستخدمين.

التأثير: انتشرت الدودة ذاتيًا إلى حوالي مليون مستخدم في غضون حوالي 20 ساعة، مما أجبر MySpace على التوقف مؤقتًا.

لماذا نجحت: سمح MySpace بوجود HTML/سمات غير مهرب في حقول الملف الشخصي، مما مكن تنفيذ البرامج النصية المخزنة في متصفحات الزوار.

الدروس / الإصلاح: الترميز الصحيح للمخرجات، تنقية المدخلات، إزالة HTML في حقول الملف الشخصي، والتصحيح السريع. واجه سامي لاحقًا عواقب قانونية، ونشرت MySpace فلاتر.

مصطلحات ذات صلة

الخطوات التالية

جاهز لتأمين تطبيقاتك؟ اختر طريقك إلى الأمام.

انضم إلى أكثر من 500 شركة تؤمن بالفعل تطبيقاتها مع Plexicus

SOC 2 Compliant
ISO 27001 Certified
Enterprise Ready