تخطَّ إلى المحتوى

🛡️ شرح الأمن السيبراني

الحماية من XSS

الدرس 10 من 25· ⏱ 1 دقائق قراءة

📚 محتوى دفاعي بحت: الهدف منع الثغرة.

ما هي XSS؟

Cross-Site Scripting: تحدث عندما يُعرَض إدخال المستخدم في الصفحة دون تهريب، فيتمكّن محتوى خبيث من التنفيذ في متصفّحات الزوّار (سرقة جلسات، تشويه الصفحة).

السبب الجذري

إدراج محتوى غير موثوق مباشرة في HTML:

// ❌ خطر: إدراج إدخال المستخدم كـ HTML خام
element.innerHTML = userInput;

الحلّ 1: التهريب (Escaping)

اعرض المحتوى كنصّ لا كـ HTML:

// ✅ آمن: نصّ فقط
element.textContent = userInput;

الحلّ 2: الأطر الحديثة تهرّب تلقائيًّا

React و Vue و Angular وقوالب Django تهرّب المخرجات افتراضيًّا:

<div>{userInput}</div>   // React يهرّبه تلقائيًّا — آمن

⚠️ تجنّب المنافذ الخطرة مثل dangerouslySetInnerHTML (React) و|safe (Django) على محتوى غير موثوق.

الحلّ 3: تطهير HTML الموثوق جزئيًّا

إن لزم عرض HTML من المستخدم، طهّره بمكتبة موثوقة (DOMPurify) تزيل العناصر الخطرة.

الحلّ 4: Content Security Policy (CSP)

ترويسة تحدّ مصادر السكربتات المسموح بها — طبقة دفاع إضافية:

Content-Security-Policy: default-src 'self'

💡 القاعدة: عامل كل إدخال مستخدم كنصّ، واهرّبه عند العرض، ولا تثق به أبدًا.

🎯 التالي: الحماية من CSRF.

هل كان هذا الدرس مفيدًا؟