كونكت للتقنية Connect4Techsكونكت للتقنية Connect4Techs
أدوات مجانية: حاسبة Subnet · امتحانات تجريبية · قاموس المصطلحات ←
أمن المعلومات

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

Cross-Site Scripting

XSS ثغرة في تطبيقات الويب تسمح بحقن كود JavaScript ضار في صفحة موثوقة ليُنفَّذ في متصفحات زوارها، فيسرق جلساتهم أو ينفذ أوامر باسمهم.

XSS اختصار لـ Cross-Site Scripting (واستُخدم حرف X لتجنب الخلط مع CSS). هي ثغرة تحدث عندما يعرض موقع ما محتوى أدخله المستخدم داخل الصفحة دون معالجته بشكل آمن، فيتمكن المهاجم من حقن كود JavaScript يُنفَّذ في متصفح كل من يزور الصفحة، وبصلاحيات الموقع نفسه.

أنواع XSS

  • Stored XSS: يُخزَّن الكود الضار في قاعدة بيانات الموقع، مثلاً في تعليق أو اسم مستخدم، ويصيب كل من يعرض الصفحة. وهو الأخطر.
  • Reflected XSS: يأتي الكود في الرابط نفسه ويُعكس في الرد، ويحتاج خداع الضحية للضغط على رابط معدّ.
  • DOM-based XSS: تحدث الثغرة بالكامل في كود JavaScript الخاص بالصفحة عندما يكتب بيانات غير موثوقة في الصفحة بطريقة خطرة مثل innerHTML.

ماذا يستطيع المهاجم أن يفعل؟

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

مثال واقعي

في عام 2005 كتب شاب يُدعى Samy Kamkar دودة على موقع MySpace استغلت ثغرة Stored XSS في الملف الشخصي؛ كل من يزور صفحته يضيفه تلقائياً كصديق وينسخ الكود إلى ملفه هو. خلال نحو يوم واحد انتشرت إلى أكثر من مليون حساب، واضطر الموقع للتوقف مؤقتاً. كانت الحمولة غير مؤذية نسبياً، لكنها أثبتت قدرة XSS على الانتشار الذاتي.

طرق الحماية

  • ترميز المخرجات (Output Encoding) حسب السياق (HTML أو Attribute أو JavaScript أو URL)، وهي الحماية الأساسية.
  • استخدام أطر حديثة تقوم بالترميز تلقائياً، مع الحذر من الدوال التي تتجاوزه.
  • تنقية المحتوى الغني بمكتبات موثوقة مثل DOMPurify بدلاً من فلاتر يدوية.
  • سياسة Content Security Policy (CSP) لتقييد مصادر السكربتات.
  • وسم الـ Cookies بـ HttpOnly و Secure و SameSite.
  • تحديث إضافات وقوالب أنظمة إدارة المحتوى باستمرار، فهي مصدر شائع لهذه الثغرة.

الفرق بين XSS و CSRF

في XSS ينفذ المهاجم كوداً داخل الموقع نفسه، أما في CSRF فيدفع متصفح الضحية لإرسال طلب للموقع من موقع آخر مستغلاً أنه مسجل الدخول، دون تنفيذ كود داخل الموقع.