
تدريب تفاعلي على البرمجة الآمنة مع تمارين SCORM عملية تغطي ثغرات OWASP Top 10 في تطبيقات الويب وواجهات برمجة التطبيقات (API)، وكشف بيانات Git/الأسرار، وأمثلة على المعالجة بأكثر من 10 لغات.
40 تمرينًا مجانيًا مفتوح المصدر للبرمجة الآمنة تعلّم أمن تطبيقات الويب بالطريقة التي يتعلم بها المطورون — عبر استغلال ثغرات حقيقية مثل حقن SQL (SQL injection)، والبرمجة النصية عبر المواقع (XSS)، وكسر التحكم في الوصول، ثم كتابة الإصلاح. وحدات SCORM تفاعلية تغطي OWASP Top 10 للويب، وواجهات API، وأمن مستودعات Git، والمزيد. أمثلة المعالجة بلغات JavaScript وTypeScript وJava وC# وPython وScala وPHP وRuby وGo وKotlin.

👥 تحدث إلى المؤسسين | 🔗 تصفح المكتبة الكاملة | 🎮 جرّب عرضًا مباشرًا لثغرة DOM XSS
قراءة OWASP Top 10 مرة واحدة في السنة واجتياز اختبار اختيار من متعدد لا يمنع ثغرات تطبيقات الويب في بيئة الإنتاج. يحتاج المطورون إلى رؤية ما يفعله الاستغلال الحقيقي — حقن SQL يسحب قاعدة بيانات، والبرمجة النصية عبر المواقع تختطف جلسة، وكسر التحكم في الوصول يكشف بيانات مستخدم آخر — ثم كتابة الكود الآمن الذي يوقف ذلك.
كل تمرين في هذه المكتبة يتبع منهجية من ثلاث مراحل: الاستغلال، التتبّع، والمعالجة.
تنفّذ اختبار اختراق عملي ضد تطبيق معرّض للثغرات عمدًا — حقن SQL ضد قاعدة بيانات، وXSS تنطلق في المتصفح، وSSRF تصل إلى نقطة بيانات وصفية في السحابة — ثم تتبّع بالضبط كيف أُدخلت الثغرة وتطبّق أفضل ممارسات البرمجة الآمنة لإصلاحها.
تغطي التمارين:
ينتهي كل تمرين باختبار بعتبة نجاح 100%. وبحلول الوقت الذي يكتب فيه المطور كودًا للإنتاج، يكون قد استغل بالفعل كل ثغرة شائعة في تطبيقات الويب ويعرف أفضل ممارسات البرمجة الآمنة التي تمنعها.
يأتي كل تمرين كملف SCORM 1.2 بصيغة .zip — استورده إلى أي نظام إدارة تعلم (Moodle أو SAP SuccessFactors أو Cornerstone أو TalentLMS أو أي نظام متوافق مع SCORM)، وضمّنه في مسار تدريب دورة حياة تطوير البرمجيات (SDLC)، أو جرّبه على SCORM Cloud قبل التوزيع.
بعلامة بيضاء (White-labeled) — بلا شعارات، وبلا روابط خلفية، وبلا تقييد بمورّد. استخدمها ضمن برنامج DevSecOps، أو مبادرة SDLC آمنة، أو كتدريب مستقل على أمن التطبيقات.
مرخّص بموجب Creative Commons Attribution-NonCommercial 4.0 International. يمكنك الاستخدام والتعديل وإعادة التوزيع مع الإسناد لأي غرض غير تجاري — التدريب الداخلي، وورش العمل، والمقررات الجامعية. لا يُسمح بإعادة بيع المحتوى كمنتج مستقل.
هل تحتاج تدريبًا على البرمجة الآمنة على نطاق واسع دون تشغيل نظام إدارة تعلم خاص بك؟ نوفّر منصة سحابية للمؤسسات مصمّمة خصيصًا لتدريب أمن التطبيقات عبر فرق الهندسة. تواصل معنا لتراها على أرض الواقع.
متعدد المستأجرين منذ الأساس — قدّم تدريب أمن التطبيقات عبر محفظة عملائك بالكامل من لوحة تحكم واحدة:
مهتم؟ تواصل معنا
Clickjacking — سرقة نقرة على زر موافقة بنكية عبر تراكب iframe شفاف، والتقاط موافقة حقيقية، وإضافة توجيه CSP frame-ancestors.
Command Injection — إلحاق أمر ثانٍ بأداة تعمل على الخادم عبر العبث بطلب ملتقط، ومشاهدة أسرار الخادم تتسرب، ثم تطبيق التنفيذ بقائمة وسائط (argument-list).
Components with Known Vulnerabilities — الحصول على تنفيذ كود عبر مكتبة قديمة من خلال استغلال CVE منشور، وتشغيل أوامر عبر رفع ملف معدّ بعناية، ثم رفع الإصدار والفحص في بيئة CI.
Cross-Site Request Forgery — تحويل أموال من صفحة لم يثق بها الضحية أبدًا عبر إرسال تلقائي لتحويل من موقع آخر، وفهم سبب انتقال ملفات تعريف الارتباط (cookies) تلقائيًا، ثم إضافة رموز لكل جلسة وخاصية SameSite.
Directory Traversal — قراءة ملفات النظام عبر رابط تحميل بالخروج من المجلد المقصود، وسحب /etc/passwd من الخادم، ثم تطبيع (canonicalizing) المسار والتحقق منه.
DOM XSS — تشغيل XSS لا يراها الخادم أبدًا عبر إخفاء حمولة في جزء الهاش من الرابط، وتتبّع نقطة استهلاك (sink) غير آمنة من نوع innerHTML، ثم الاستبدال بـ textContent.
Forced Browsing — سحب تصدير بيانات الموظفين الشخصية (PII) من مسار غير مرتبط بأي رابط بالوصول إلى عنوان داخلي بشكل مجهول، ومعرفة لماذا الإخفاء ليس تحكمًا في الوصول، ثم فرض المصادقة على الخادم.
Horizontal Privilege Escalation — غيّر رقمًا واحدًا واقرأ بيانات عميل آخر من خلال استغلال ثغرة IDOR من الجانبين، وتعداد معرفات السجلات المتسلسلة، ثم إضافة فحص الملكية المفقود.
Host Header Injection — إعادة توجيه بريد إعادة تعيين كلمة المرور إلى نطاق مشابه عبر تزوير ترويسة X-Forwarded-Host، وسرقة رمز إعادة التعيين بعد النقر عليه، ثم تثبيت عنوان أساسي (base URL) مُعد مسبقًا.
— إخفاء صفحة تصيّد خلف تسجيل دخول حقيقي عبر إساءة استخدام وسيط next، ومعرفة لماذا يبدو النطاق صحيحًا، ثم السماح بالمسارات النسبية فقط.
Broken Function Level Authorization — استدعاء نقاط نهاية خاصة بالموظفين من حساب للقراءة فقط عبر الوصول إلى مسارات المدير كمحلل، وسحب قائمة الفريق وإنشاء دفعة، ثم إضافة حارس أدوار على مستوى الموجّه (router).
Broken Object Level Authorization — استبدال معرف وقراءة راكب آخر عبر تغيير معرف الكائن في طلب، وجمع السجلات بالتنقل بين المعرفات، ثم فرض الملكية على مستوى الكائن.
Broken User Authentication — تخمين رمز دخول من ستة أرقام بقوة غاشمة عبر مهاجمة نقطة نهاية تحقق غير محدودة، والاستيلاء على الحساب باستخدام بريد إلكتروني فقط، ثم تطبيق تحديد المعدل (rate limiting) لكل حساب برمز 429.
Excessive Data Exposure — قراءة الحقول التي لا تظهرها الواجهة أبدًا عبر مقارنة الصفحة المعروضة بـ JSON الخام، والعثور على الهاتف وتاريخ الميلاد والإحداثيات، ثم تسلسل (serialize) قائمة حقلية مسموح بها.
Improper Inventory Management — قراءة السجلات عبر نسخة API متقاعدة باستبدال v2 بإصدار قديم v1، وتجاوز الضوابط التي يفرضها الإصدار الجديد، ثم إيقاف الإصدارات القديمة برمز 410 Gone.
Injection — تحويل صندوق بحث إلى قراءة كاملة لقاعدة البيانات عبر الخروج من استعلام الكتالوج، وتفريغ جدول المستخدمين بـ UNION، ثم استخدام المعاملات (parameterizing) بحيث تبقى المدخلات بيانات.
Insufficient Logging & Monitoring — البحث عن عميل دون ترك أثر عبر الوصول إلى سجل بدون تذكرة، ومعرفة لماذا لا يمكن لأحد نسب ذلك إليه، ثم إضافة سجلات تدقيق وتنبيهات.
Mass Assignment — إنشاء رصيد ولاء بمفتاحين إضافيين عبر إضافة حقول إلى جسم طلب PATCH، وكتابة خصائص لا ينبغي أن تمتلكها، ثم ربط الحقول القابلة للتحرير فقط.
Security Misconfiguration — قراءة حساب مسجّل الدخول من أي موقع ويب عبر عكس أصل CORS عشوائي، وتسليح صفحة إغراء، ثم تقييد CORS بقائمة مسموح بها.
Secrets in Git History — استعادة مفتاح API نشط من الالتزام الذي أزاله عبر التنقل في تاريخ ملف إعداد معدّل، وإعادة استخدام مفتاح لم يُدار قط، ثم تدويره أولًا وتنظيفه بأداة git filter-repo.
Exposed .git Directory — إعادة بناء قاعدة كود كاملة من عنوان URL عام واحد عبر العثور على مجلد .git قابل للتصفح في جذر الويب، وتفريغ المستودع واستعادة المصدر، ثم نشر مخرجات البناء بدلًا من المستودع.
Committed Secret Files — استنساخ مستودع عام وقراءة ملف .env المرفوع فيه عبر رصد ملفات سرية متتبَّعة منذ أول التزام، وإلغاء تتبّعها باستخدام git rm --cached مع تدويرها، ثم إضافة .gitignore وخطاف pre-commit.
Commit Author Spoofing — إدخال باب خلفي باسم أحد المشرفين عبر جمع هوية مؤلف من git log، وقراءة شارة التوقيع Unverified، ثم طلب التزامات موقّعة من جميع المساهمين بما فيهم المسؤولون.
Branch Protection Bypass — استخدام push القسري على فرع main وتجاوز المراجعة وCI عبر إعادة كتابة التاريخ على فرع غير محمي، ونشر كود غير مراجع مباشرة إلى الإنتاج، ثم طلب طلبات سحب ومراجِعين وفحوصات.
Leaked Access Tokens — استنساخ مستودعات خاصة برمز من gist عام عبر التحقق مما يمكن أن يصل إليه رمز بصلاحيات مفرطة، ثم إبطاله وتدويره بدلًا من حذف gist فقط، وإعادة إصدار رموز دقيقة وقصيرة الأجل.
Malicious Pull Requests — اكتشاف باب خلفي مخفي داخل إصلاح اختبار بريء عبر قراءة الـ diff الكامل بدلًا من الوصف، ووضع علامة على التعديلات الخارجة عن النطاق في سكربتات النشر، ثم تشديد المراجعة باستخدام CODEOWNERS وحدود Fork (fork limits).
CI/CD Secret Exposure — انتزاع مفتاح نشر مباشرة من سجل بناء عام عبر العثور على خطوة سير العمل التي تطبع سرًا، ومنع إدخال غير موثوق من التنفيذ كأوامر shell، ثم تثبيت الإجراءات (actions) بمعرّف SHA للالتزام وتدوير المفتاح.
Leftover Debug Code — سحب أسرار الإنتاج من مسار تصحيح أُهمل عبر العثور على نقطة نهاية تعرض متغيرات البيئة، وقراءة أسرار JWT وقاعدة البيانات، ثم الإغلاق الآمن (fail closed) باستخدام قائمة مسموح بها.
PII in URL — انتزاع البيانات الشخصية مباشرة من رابط عبر رصد المعرّفات في سلاسل الاستعلام، وتتبّع التسريب إلى السجلات والموجّهات (referrers)، ثم إعادة الكتابة إلى رموز غير قابلة للفهم.
Reflected XSS — صياغة رابط خبيث يعمل فور فتحه عبر عكس حمولة من صفحة بحث، وفهم تدفق ضحية تنقر الرابط، ثم الهروب (escaping) عند حدود العرض.
Server-Side Request Forgery — جعل الخادم يجلب بيانات اعتماد السحابة الخاصة به عبر إساءة استخدام ميزة معاينة الروابط، والوصول إلى نقطة نهاية البيانات الوصفية (metadata)، ثم التحقق من الوجهات الصادرة.
Session Fixation — زرع معرف جلسة والاستيلاء على جلسة دخول الضحية عبر تثبيت معرف معروف لدى الضحية، وملاحظة أن تسجيل الدخول يعيد استخدامه، ثم إعادة توليد المعرف عند كل تسجيل دخول.
SQL Injection — تفريغ قاعدة بيانات من خلال نموذج بحث واحد غير محمي باستغلال حمولة tautology، وسرقة الجداول عبر UNION SELECT، ثم تطبيق الإصلاح بالاستعلامات المُعاملية (parameterized).
Stored XSS — زرع سكربت في تعليق ومشاهدته يعمل عبر تخزين حمولة في محتوى المستخدم، ورؤيته ينفذ لدى الزائر التالي، ثم هروب المخرجات عند العرض.
Token Exposure in URL — إعادة استخدام رمز جلسة تم التقاطه من سجل الموجّه (referrer) عبر رصد الرمز في رابط إعادة توجيه، وإعادة استخدامه على حساب حي، ثم نقله إلى ملف تعريف ارتباط بعلامة HttpOnly.
User Enumeration — جمع قائمة عملاء موثّقين من نموذج تسجيل الدخول عبر قراءة استجابات خطأ مختلفة، وقياس تسريبات زمن الاستجابة، ثم توحيد الأخطاء والتوقيت.
Vertical Privilege Escalation — تزوير مطالَب (claim) بالدور وتصبح مسؤولًا عبر العبث برمز الجلسة، والانتقال من مشاهد إلى مسؤول، ثم التحقق من الرموز قبل الوثوق بها.
Weak Randomness — توقّع رمز إعادة تعيين كلمة المرور والاستيلاء على الحساب عبر أخذ عينات من الرموز من المولّد، واستعادة حالة Math.random()، ثم الانتقال إلى crypto.randomBytes.
XXE Injection — قراءة ملف كلمات المرور عبر رفع XML بإرسال أمر شراء معدّ بعناية، وتحليل كيان خارجي، ثم تعطيل تحليل الكيانات.
Unrestricted Resource Consumption — تجريف كتالوج بطلب واحد ضخم عبر تحديد حجم الصفحة من الطلب، وسحب 250,000 سجل دفعة واحدة، ثم وضع حد أقصى لحجم الصفحة على الخادم.