طَبِّقْهاتعلّم المبدأ، وطبّقه بيدكمقرر 243 · أمن الويب
الدرس 3 · الوحدة 2: ثغرات أمن الويب الشائعة

قائمة OWASP لأشهر عشر مخاطر

من أين نعرف أين ننظر؟ من قائمة تجمع خبرة الصناعة في أخطر عشر فئات. ⏱ نحو 35 دقيقة.

بعد هذا الدرس ستستطيع أن:
  • تعرّف منظمة OWASP وقائمتها العشرية.
  • تميّز الفئات الكبرى وأمثلتها.
  • تستخدم القائمة قائمةَ فحص عند التصميم والمراجعة والاختبار.
  • تصنّف ثغرة إلى فئتها وتذكر دفاعها.

١مرجع الصناعة: OWASP Top 10

بدل أن يكتشف كل مطوّر الثغرات بنفسه، جمعت منظمة OWASP (مشروع أمان تطبيقات الويب المفتوح) خبرة الصناعة في قائمة بأخطر عشر فئات من مخاطر تطبيقات الويب، تُحدَّث كل بضع سنوات بناءً على بيانات حقيقية من آلاف التطبيقات.

القائمة ليست قانونًا، بل قائمة مرجعية: قبل إطلاق أي تطبيق، تمرّ على فئاتها العشر وتسأل: هل حميت تطبيقي من كل منها؟ أغلب الاختراقات الحقيقية تقع في واحدة من هذه الفئات.

٢الفئات العشر الكبرى

هذه الفئات بترتيب خطورتها في أحدث إصدار معتمد (2021)، مع أين يعالجها هذا المقرر:

#الفئةباختصارفي المقرر
A01تعطّل التحكم بالوصولمستخدم يصل لما لا يحق له (IDOR)الدرس 11
A02الإخفاقات التشفيريةبيانات حساسة بلا تشفير أو بتشفير ضعيفالوحدة 10
A03الحقنمدخل المستخدم يُنفَّذ أمرًا (SQL، XSS)الدروس 7–10
A04التصميم غير الآمنثغرة في التصميم لا في الكودالدرس 5
A05الإعداد الأمني الخاطئإعدادات افتراضية، رسائل خطأ مكشوفةالدرس 6
A06مكوّنات قديمة ومعيبةمكتبة فيها ثغرة معروفةالدرس 6
A07إخفاقات المصادقة والهويةكلمات مرور ضعيفة، جلسات غير آمنةالدروس 11، 25
A08إخفاقات سلامة البياناتالثقة بتحديثات أو بيانات غير موقّعةالدرس 24
A09نقص التسجيل والمراقبةالهجوم يقع ولا أحد يعلمالدرس 14
A10تزوير الطلب من الخادم (SSRF)إجبار الخادم على طلب داخليالدرس 20

لا تحفظ الرموز؛ احفظ الفكرة: لكل فئة سبب ودفاع. والمقرر يأخذك في الأهم منها عمليًّا.

٣كيف تُستخدم القائمة

القائمة أداة عمل، تُستخدم في ثلاثة مواضع:

الموضعكيف
عند التصميمراجع كل فئة واسأل: هل تصميمي معرّض لها؟ (نمذجة التهديدات، الدرس 5)
عند المراجعةاجعلها قائمة فحص لمراجعة الكود قبل الدمج
عند الاختبارحوّل كل فئة إلى حالات اختبار سلبية: جرّب أن تخترق تطبيقك

ناتج التعلم الثاني من الخطة ينص على معالجة ثلاث ثغرات على الأقل. مشروع نهاية المقرر (الدرس 28) هو تدقيق تطبيق على هذه القائمة وإصلاح ثغراته.

توقّع وتحقّق

ما OWASP Top 10؟

حقن SQL و XSS يقعان في فئة:

«مستخدم يصل لبيانات غيره» فئة:

أفضل استخدام للقائمة:

الخلاصة

تحدٍّ تصميمي: تصنيف الثغرات على OWASP

متوسط

راجع فريقك متجر «رفيق» ووجد أربع مشكلات. صنّف كل مشكلة إلى فئتها من OWASP Top 10، واذكر دفاعًا مختصرًا لكل منها.

المطلوب:
  • لكل مشكلة: الفئة ثم دفاع في سطر واحد.
  • المشكلات: (أ) حقل بحث يُدرج نصه مباشرة في استعلام SQL. (ب) أي مستخدم يرى طلب غيره بتغيير الرقم. (ج) كلمات المرور مخزّنة نصًّا صريحًا. (د) رسائل الخطأ تكشف مسار الملفات ونسخة الخادم.
✓ التحقق الآلي: يفحص المختبر بنية مستندك وصياغته (لا يحكم على جودة الفكرة؛ هذا دور معلمك)
  • (أ) الفئة الحقن
  • (أ) الدفاع بالاستعلامات المعلَّمة
  • (ب) فئة التحكم بالوصول
  • (ج) فئة التشفير
  • (ج) الدفاع بالتجزئة
  • (د) فئة الإعداد الخاطئ

💡 تلميح 1
حقل بحث في استعلام SQL = فئة الحقن، ودفاعها الاستعلامات المعلَّمة.
💡 تلميح 2
رؤية بيانات الغير = تعطّل التحكم بالوصول (A01).
💡 تلميح 3
كلمات المرور النصية = إخفاقات تشفيرية (A02)، ودفاعها التجزئة بـ bcrypt.

نموذج واحد من إجابات كثيرة صحيحة.

(أ) حقل البحث في SQL — الفئة ثم الدفاع
الحقن (A03): استخدام الاستعلامات المعلَّمة بدل دمج النص في الاستعلام.
(ب) رؤية طلب الغير — الفئة ثم الدفاع
تعطّل التحكم بالوصول (A01): التحقق أن الطلب يخص المستخدم قبل عرضه، والرد 404 لغيره.
(ج) كلمات مرور نصية — الفئة ثم الدفاع
الإخفاقات التشفيرية (A02): تجزئة كلمات المرور بدالة بطيئة مثل bcrypt، لا تخزينها نصًّا.
(د) رسائل خطأ مكشوفة — الفئة ثم الدفاع
الإعداد الأمني الخاطئ (A05): إخفاء تفاصيل الأخطاء عن المستخدم وتسجيلها داخليًّا فقط.
انتقل إلى تقييم الدرساختيار من متعدد، وصح وخطأ، وأكمل الفراغ، وتتبّع الناتج.ابدأ التقييم ←

📝 معلم؟ أرسل ملاحظة للمؤلف عن هذا الدرس