قائمة OWASP Top 10
قائمة OWASP Top 10 وثيقة توعية تصدرها مؤسسة OWASP وترتّب أخطر عشر فئات من المخاطر الأمنية في تطبيقات الويب. والإصدار الحالي هو OWASP Top 10:2025. ولكل فئة معرّف مثل A01:2025 واسم، ونقاط الضعف التي تجمعها (مرتبطة بمدخلات CWE)، ونصائح للوقاية، وسيناريوهات هجوم توضيحية.
وبالنسبة إلى المختبِر فهي أساس اختبار (Test Basis): عشرة أسئلة تُطرح عن أي ميزة. فسؤال «هل يستطيع العميل أ تنزيل فاتورة العميل ب بتغيير المعرّف؟» هو السؤال الكامن خلف الفئة A01:2025 خلل التحكم في الوصول (Broken Access Control)، ويجيب عنه طلب واحد يُرسل برمز المستخدم الخطأ.
لماذا يهم
نادراً ما تظهر العيوب الأمنية في الاختبارات الوظيفية، لأن التطبيق يتصرف كما هو محدد مع المستخدم النزيه. وتظهر حين يرسل أحدهم طلباً لا ترسله الواجهة أبداً: معرّف مستخدم آخر، أو مسار المسؤول، أو رمزاً بعد تسجيل الخروج، أو علامة اقتباس داخل حقل. وتسمّي القائمة فئات نقاط الضعف التي تُظهر بيانات الاختبار انتشارها، مرجَّحةً بمدى سهولة استغلالها وحجم ضررها، فتغطيتها تغطي إخفاقات شائعة وخطيرة معاً.
وهي أيضاً لغة مشتركة: فالمطورون ومختصو الأمان والمدققون يعرفون معنى «ملاحظة من فئة A01»، فيُفهم التقرير الذي يسمّي الفئة ويُرتَّب حسب الأولوية أسرع. كما تحدّد ما يغطيه مختبِر الجودة قبل أن يتعمّق اختبار الاختراق المتخصص في الفئات نفسها.
ما هي القائمة، وما ليست هي
تنشر OWASP إصداراً جديداً كل بضع سنوات؛ وقد حلّ إصدار 2025 محلّ إصدار 2021. تأتي ثمانٍ من الفئات العشر من بيانات اختبار تساهم بها مؤسسات تختبر التطبيقات، وتُرتَّب بدرجة تجمع بين مدى تكرار العثور على كل نقطة ضعف (معدل الحدوث، Incidence Rate) وقابلية استغلالها وأثرها؛ ويضيف استطلاع مجتمعي للممارسين الفئتين الأخريين لمخاطر لا تُظهرها البيانات بما يكفي (تذكر صفحة A09 في إصدار 2025 أنها أُدرجت بالتصويت، وكانت A03 أعلى المخاوف ترتيباً في الاستطلاع). وثلاثة تغييرات تهمّ في 2025: الفئة A10 سوء التعامل مع الحالات الاستثنائية جديدة، وتوسّعت A03 من فئة 2021 «المكوّنات الضعيفة والقديمة» (Vulnerable and Outdated Components) إلى سلسلة البناء والتوزيع والتحديث كاملة، وأُعيدت تسمية A09 لتأكيد التنبيه لا التسجيل فقط. وترتبط كل فئة بقائمة من مدخلات CWE؛ وتعداد نقاط الضعف الشائعة (Common Weakness Enumeration) فهرس تصدره MITRE لأنواع نقاط الضعف (أما CVE فيسمّي ثغرة واحدة في منتج واحد)، ويَسِم كثير من أدوات الفحص نتائجها بمعرّفات CWE.
والقائمة ليست معياراً ولا قائمة فحص كاملة. فمعيار التحقق من أمان التطبيقات (ASVS) يحوّل الأمان إلى متطلبات قابلة للتحقق، ودليل اختبار أمان الويب (WSTG) يقدّم إجراءات اختبار خطوة بخطوة، وقائمة OWASP API Security Top 10 لعام 2023 تغطي المخاطر الخاصة بواجهات API. استخدم القائمة لتقرر أين تنظر أولاً، وASVS وWSTG لتقرر إلى أي عمق.
- اذكر السنة دائماً: فالمواقع تتغيّر بين الإصدارات، و
A03كانت تعني الحقن في 2021 وتعني إخفاقات سلسلة توريد البرمجيات في 2025. - اختبر فقط الأنظمة التي تملكها أو لديك إذن كتابي باختبارها. وكل فحص في هذا الدرس ملاحظة غير مدمِّرة، لا استغلال لثغرة.
فئات 2025 العشر والفحص الأول للمختبِر
لكل فئة فيما يلي: ما تجمعه، ثم الفحص الأول الذي يجريه المختبِر. وتتعمّق دروس لاحقة في هذه الوحدة في كل مجال؛ والهدف هنا أن تتعرّف كل فئة وتعرف أين تنظر.
A01:2025خلل التحكم في الوصول (Broken Access Control): التصرف خارج الصلاحيات، مثل قراءة سجل مستخدم آخر بتغيير المعرّف. الفحص: أعد الطلب برمز صالح للمستخدم الخطأ وللدور الخطأ؛ وتوقّع 403 أو 404.A02:2025سوء الإعداد الأمني (Security Misconfiguration): حسابات افتراضية، وميزات غير ضرورية، وأخطاء مفصّلة، وترويسات أمان مفقودة، وأذونات متساهلة. الفحص: اقرأ ترويسات الاستجابة، وتسبّب في ظهور صفحة خطأ، وجرّب بيانات الاعتماد الافتراضية الموثّقة في بيئة الاختبار.A03:2025إخفاقات سلسلة توريد البرمجيات (Software Supply Chain Failures): مكوّنات وأدوات بناء وقنوات تحديث ذات ثغرات أو غير مصانة أو غير متتبَّعة أو مخترقة. الفحص: اطلب جرد الاعتماديات بإصداراتها، واسأل إن كانت التحذيرات الأمنية تُراجع قبل كل إصدار.A04:2025إخفاقات التشفير (Cryptographic Failures): بيانات حساسة تُرسل أو تُخزَّن دون تشفير، وخوارزميات ضعيفة، ومفاتيح مضمّنة في الشيفرة. الفحص: تأكد من TLS على كل نقطة نهاية، وابحث عن كلمات مرور أو أرقام بطاقات أو رموز مخزّنة أو مسجّلة بنص واضح.A05:2025الحقن (Injection): مدخلات غير موثوقة تصل إلى مفسِّر (SQL أو أمر نظام أو قالب أو HTML) دون تهريب (Escaping)؛ وتنتمي إلى هنا البرمجة النصية عبر المواقع (Cross-Site Scripting, XSS)، حين ينتهي المدخل سكربتاً يعمل في متصفح مستخدم آخر. الفحص: علامة اقتباس أو قوس زاوية أو فاصلة منقوطة في كل حقل؛ وراقب ظهور أخطاء أو تغيّر النتائج أو وسوماً يعرضها المتصفح عناصرَ لا نصاً.A06:2025التصميم غير الآمن (Insecure Design): منطق العمل يسمح بالإساءة حتى مع شيفرة صحيحة، مثل قسيمة تُطبَّق مرتين. الفحص: اسلك المسار بعقلية مستخدم غير نزيه وحاول خرق القاعدة دون أي حيلة تقنية.A07:2025إخفاقات المصادقة (Authentication Failures): قبول كلمات مرور ضعيفة، ولا قفل ولا تقييد للمحاولات، وتعداد المستخدمين، وجلسات تبقى بعد تسجيل الخروج. الفحص: محاولات بكلمة مرور خاطئة، ورسائل تختلف بين حساب موجود وآخر غير موجود، ورمز قديم بعد تسجيل الخروج.A08:2025إخفاقات سلامة البرمجيات أو البيانات (Software or Data Integrity Failures): شيفرة أو بيانات تُعامل كموثوقة دون تحقق: سكربتات من CDN غير موثوق، وتحديثات غير موقّعة، وخط CI/CD غير محمي. الفحص: اسأل كيف يُتحقق من مخرجات البناء (Artefacts) والتحديثات، وهل تُقبل بيانات يعيدها العميل، مثل كائن مُسلسَل (Serialised) داخل ملف تعريف ارتباط، دون فحص لسلامتها.A09:2025إخفاقات التسجيل الأمني والتنبيه (Security Logging and Alerting Failures): عمليات الدخول والمحاولات الفاشلة والمعاملات عالية القيمة غير مسجّلة، والسجلات غير مراقبة، ولا تنبيهات تُطلق. الفحص: بعد اختباراتك، اسأل هل ظهرت طلباتك المرفوضة في السجلات وهل نُبّه أحد.A10:2025سوء التعامل مع الحالات الاستثنائية (Mishandling of Exceptional Conditions): أخطاء لا تُعالج في موضع حدوثها، والفشل المفتوح (Failing Open) أي السماح بالفعل حين يتعطّل الفحص نفسه، وتتبّعات مكدس (Stack Traces) مكشوفة، وحالة غير متسقة بعد الفشل. الفحص: أرسل معاملاً مفقوداً أو قيمة ضخمة أو نوعاً خاطئاً؛ وتوقّع خطأً نظيفاً وباباً مغلقاً.
| الفئة (OWASP Top 10:2025) | سؤال المختبِر الأول | الدليل الذي يُسجَّل |
|---|---|---|
| خلل التحكم في الوصولA01:2025 | هل يصل المستخدم أ إلى سجل المستخدم ب أو إلى فعل للمسؤول؟ | الطلب بهوية المستخدم الخطأ وحالة استجابته (المتوقع 403 أو 404) |
| سوء الإعداد الأمنيA02:2025 | هل الإعدادات الافتراضية والترويسات والأخطاء والأذونات محصّنة؟ | ترويسات الاستجابة، وصفحة خطأ واحدة، ومحاولة بيانات الاعتماد الافتراضية |
| إخفاقات سلسلة توريد البرمجياتA03:2025 | هل المكوّنات متتبَّعة ومدعومة ومن مصادر موثوقة؟ | جرد الاعتماديات بإصداراتها والتحذيرات التي رُوجعت |
| إخفاقات التشفيرA04:2025 | هل البيانات الحساسة مشفّرة أثناء النقل وفي التخزين؟ | TLS على كل نقطة نهاية؛ وأي سرّ مخزّن أو مسجّل بنص واضح |
| الحقنA05:2025 | هل تصل مدخلات غير موثوقة إلى SQL أو أمر أو HTML دون تهريب؟ | الحقل والمدخل والخطأ أو السلوك المتغيّر |
| التصميم غير الآمنA06:2025 | هل يمكن إساءة استخدام قاعدة العمل دون أي خطأ برمجي؟ | المسار والقاعدة والسيناريو الذي يتجاوزها |
| إخفاقات المصادقةA07:2025 | هل يمكن تخمين كلمات المرور أو تعداد الحسابات أو إعادة استخدام الرمز بعد تسجيل الخروج؟ | سلوك القفل، والرسائل المختلفة، وعمر الرمز بعد تسجيل الخروج |
| إخفاقات سلامة البرمجيات أو البياناتA08:2025 | هل تُقبل شيفرة أو بيانات دون توقيع أو فحص سلامة؟ | كيفية التحقق من المخرجات والتحديثات؛ والبيانات المسلسلة المقبولة كما هي |
| إخفاقات التسجيل الأمني والتنبيهA09:2025 | هل تُسجَّل عمليات الدخول والإخفاقات والأفعال عالية القيمة ويُنبَّه إليها؟ | سطر السجل لكل حدث اختبار ومن تلقّى التنبيه |
| سوء التعامل مع الحالات الاستثنائيةA10:2025 | حين يحدث خطأ، هل يُغلَق النظام بأمان ولا يكشف إلا القليل؟ | الخطأ المعروض، والحالة المتبقية، ومدخل السجل |
جرّبها: محلّل ترويسات الأمان جرّبها: مختبِر مصادقة API جرّبها: محلّل ملفات تعريف الارتباط (Cookies)
مثال تطبيقي: نقطة نهاية واحدة عبر الفئات العشر
تتيح بوابة عملاء للعميل المسجّل دخوله تنزيل فاتورته بصيغة PDF. والمرور بهذا الطلب عبر القائمة يستغرق بضع دقائق ويعطي مجموعة قصيرة مرتّبة بالأولوية من شروط الاختبار.
- A01: أعد الطلب برمز العميل ب للفاتورة 8812 التي تعود للعميل أ. المتوقع: 403 أو 404، ولا PDF أبداً. واسأل أيضاً هل للملف المخزَّن عنوان URL مباشر يمكن توقّعه فيتخطى هذا الفحص. الأولوية الأولى: فالفواتير تحمل بيانات شخصية ومالية.
- A07 وA04: دون رمز يجب أن يُرَدّ الطلب بالحالة 401؛ ويجب أن يتوقف الرمز عن العمل بعد تسجيل الخروج وبعد انتهاء صلاحيته؛ ويجب أن تمرّ الاستجابة عبر TLS وألا تكون قابلة للتخزين في ذاكرة مؤقتة مشتركة (
Cache-Control: no-storeأوprivate). - A02 وA10: اطلب
/api/invoices/abc/pdfو/api/invoices/99999999/pdf. المتوقع: خطأ قصير بالحالة الصحيحة، ولا تتبّع مكدس، ولا إصدار إطار عمل في الترويسات. - A05 وA09: المعرّف رقمي، فأرسل أيضاً معرّفاً يحوي علامة اقتباس،
8812'؛ ورسالة خطأ من قاعدة البيانات في الاستجابة ملاحظة حتى دون استغلال. وبعد التشغيل اطلب من المطور أن يجد طلباتك المرفوضة في السجل. - A03 وA06 وA08 أسئلة للفريق: أي مكتبة PDF وأي إصدار يولّد الفاتورة (A03)، وهل يمكن إنتاج فاتورة لطلب لم يُدفع (A06)، وهل يُبنى ملف PDF من سجلات الخادم نفسه أم من قيم يرسلها العميل، كالمبلغ، دون تحقق (A08).
GET /api/invoices/8812/pdf HTTP/1.1
Host: portal.example.com
Authorization: Bearer <access token of customer A>
Accept: application/pdfجرّبها: منشئ طلبات API جرّبها: محلّل مطالبات JWT جرّبها: مولّد مجموعات الأحرف الخاصة
أخطاء شائعة
- التعامل مع القائمة كخطة اختبار أمان كاملة؛ فهي تسمّي عشر فئات عالية الخطر لا كل نقاط الضعف، وASVS وWSTG يذهبان أبعد بكثير.
- ذكر الفئة دون سنتها، فتعني
A03شيئين مختلفين لقارئين مختلفين. - نقل مخرجات أداة الفحص دون قراءتها؛ فنتيجة الأداة خيط يعيد المختبِر إنتاجه ويصنّفه ويخلّصه من النتائج الزائفة.
- الاختبار عبر الواجهة فقط، في حين تحتاج أغلب الفحوص إلى طلب لا ترسله الواجهة أبداً: معرّف آخر، أو رمز مفقود، أو دور مغيَّر.
- تقييم ترويسة أمان مفقودة فوق قراءة مؤكدة لبيانات مستخدم آخر؛ صنّف حسب الأثر كما في الاختبار المستند إلى المخاطر.
- إرسال حمولات إلى نظام لا تملكه أو لا تحمل إذناً كتابياً باختباره.
من منظور ضمان الجودة
تظهر القائمة في الفريق في ثلاث لحظات. في تنقيح المتطلبات (Refinement)، يقرأ المختبِر القصة ويسأل أي الفئات تمسّها: معرّف في عنوان URL يمسّ A01، ومدخل جديد يمسّ A05 وA10، وتسجيل دخول أو رمز يمسّ A07؛ وتصبح هذه شروط اختبار بجانب الشروط الوظيفية. وفي التنفيذ، يُسجَّل كل فحص طلباً واستجابةً وحكماً، كأي حالة اختبار، مع المعرّف في عنوانها.
وتُبلَّغ الملاحظة بالفئة والطلب بالضبط والاستجابة المتوقعة والفعلية، وبخطورة تستند إلى البيانات أو الفعل المكشوف: فملاحظة مؤكدة من فئة A01 على بيانات شخصية تكون عادةً حرجة (Critical) أو حاجبة (Blocker). وقبل الإصدار يذكر الفريق أي الفئات فُحصت، وأيها خارج النطاق (A03 كثيراً ما تخص خط البناء)، وما ينبغي أن ينظر فيه اختبار الاختراق المتخصص بعد ذلك.
تمرين عملي
اربط ميزة رفع صورة بالقائمة
تتيح صفحة الملف الشخصي للمستخدم المسجّل رفع صورة شخصية عبر POST /api/users/{id}/avatar: بصيغة JPEG أو PNG، بحد أقصى 5 ميغابايت، تُخزَّن في خدمة تخزين كائنات (Object Storage) وتُعرض في ملفه عند عنوان URL يعيده الخادم.
مرّ على فئات OWASP Top 10:2025 العشر. قرّر لكل فئة هل تنطبق على هذه الميزة، وإن انطبقت فاكتب الفحص الأول الذي ستجريه. ثم اختر الفحوص الثلاثة التي ستنفّذها أولاً وبرّر ترتيبها.
- اكتب الفئات العشر بمعرّفاتها.
- صنّف كل فئة: تنطبق، أو تنطبق جزئياً، أو سؤال للفريق.
- اكتب فحصاً واحداً لكل فئة منطبقة، طلباً أو ملاحظة.
- رتّب الفحوص الثلاثة الأولى حسب البيانات أو الفعل المعرّض للخطر.
إظهار الإجابة النموذجية
A01: ارفع برمز المستخدم أ إلى {id} المستخدم ب؛ وتوقّع 403 أو 404 وبقاء صورة ب دون تغيير. وجرّب أيضاً اسم ملف يحوي ../ (اجتياز المسار، Path Traversal، وتربطه OWASP بالفئة A01): يجب ألا يستقر الملف خارج موقع التخزين الخاص بالمستخدم أ. A07: الطلب نفسه دون رمز وبرمز منتهي الصلاحية؛ وتوقّع 401 وألا يُخزَّن شيء. A05 وA10: ملف بحجم 6 ميغابايت، وملف HTML أُعيدت تسميته إلى .png، واسم ملف يحوي علامة اقتباس؛ وتوقّع رفضاً نظيفاً مبنياً على المحتوى الفعلي لا على الامتداد، ولا تتبّع مكدس، ولا شيء مخزّناً.
A02: ترويسات عنوان الصورة المعاد، وهل تعرض حاوية التخزين (Bucket) محتوياتها. A04: HTTPS على طلب الرفع وعلى عنوان الصورة. A08: هل يحمل الطلب قيمة ينبغي أن يقرّرها الخادم بنفسه، مثل مسار التخزين أو العنوان الذي يُعرض، فيقبلها الخادم دون تحقق. A09: هل تُسجَّل عمليات الرفع المرفوضة والمحاولات بين المستخدمين. A03 وA06 سؤالان للفريق: أي مكتبة صور وأي إصدار، وهل تبقى صورة الملف الشخصي الخاص متاحة لكل من يخمّن عنوانها أو يحتفظ به.
الثلاثة الأولى: A01 (يمكن استبدال صورة مستخدم آخر)، ثم ملف HTML المتنكّر تحت A05 (قد يعمل المحتوى المخزّن في متصفحات مستخدمين آخرين)، ثم A07 (يستطيع أي أحد الرفع دون تسجيل الدخول). فكل منها يعرّض مستخدمين آخرين، لا حساب المختبِر وحده؛ ويأتي بعدها الملف الضخم تحت A10، لأنه يهدد التخزين والتوافر لا بيانات مستخدم آخر.
أسئلة شائعة
هل قائمة OWASP Top 10 هي نفسها OWASP API Security Top 10؟
لا. تغطي القائمة تطبيقات الويب عموماً، أما OWASP API Security Top 10 لعام 2023 فقائمة منفصلة لواجهات API، وبندها الأول خلل التفويض على مستوى الكائن. والفرق التي تبني واجهات API تستخدم القائمتين.
هل أحتاج إلى مهارات اختبار الاختراق لاستخدام القائمة؟
لا. أغلب الفحوص الأولى طلبات عادية بمعرّف أو رمز أو قيمة مدخل مغيَّرة، إضافة إلى قراءة الترويسات والأخطاء والسجلات. ويتعمّق اختبار الاختراق المتخصص في الفئات نفسها، وفحوصك تجعله أرخص وأدق تركيزاً.
أي فئة أختبر أولاً؟
ابدأ بالفئة A01:2025 خلل التحكم في الوصول حيثما تعرض الميزة بيانات أو أفعالاً بالمعرّف، ثم المصادقة ومعالجة المدخلات. ورتّب حسب أثر ما قد يُكشف، كما في الاختبار المستند إلى المخاطر، لا حسب موقع الفئة في القائمة.
تغيّرت القائمة بين 2021 و2025، فأيّهما أستخدم؟
استخدم إصدار 2025 واذكر المعرّفات مع السنة. وإذا كانت سياسة مؤسستك أو أدواتها ما زالت تشير إلى فئات 2021، فاربط الملاحظات بالإصدارين حتى يُحدَّث ذلك.
المراجع
- OWASP Top 10:2025أخطر عشرة مخاطر أمنية لتطبيقات الويب، مع كيفية اختبار كل منها والوقاية منه.
- OWASP Web Security Testing Guide (WSTG)المنهجية المرجعية لاختبار تطبيقات الويب وواجهات API بحثاً عن نقاط الضعف الأمنية، اختباراً تلو الآخر.
- OWASP Application Security Verification Standard (ASVS)قائمة تحقق بمتطلبات أمنية قابلة للتحقق لتطبيقات الويب، مصنّفة في ثلاثة مستويات ضمان.
- OWASP API Security Top 10 (2023)أكثر عشر نقاط ضعف شيوعاً في واجهات API: خلل التفويض على مستوى الكائن، وخلل التوثيق، والاستهلاك غير المقيد للموارد، وغيرها.
تدرّب بأدوات متقن
تقييم ترويسات أمان HTTP (CSP وHSTS وX-Frame-Options وReferrer-Policy وPermissions-Policy وCOOP/CORP) من ترويسات ملصقة أو عنوان URL عام.
اختبر مصادقة Bearer وBasic ومفتاح API والترويسات المخصّصة على نقطة نهاية وقارن الاستجابات المصرّح بها بغير المصرّح بها.
تحليل ترويسات Set-Cookie والتحقق من أفضل الممارسات في Secure وHttpOnly وSameSite وDomain وPath وانتهاء الصلاحية والحجم.
تحليل مطالبات JWT للكشف عن القيم المفقودة أو الخطرة أو غير القياسية مع توصيات أمنية.
أنشئ طلبات HTTP وأرسلها (الطريقة وعنوان URL والترويسات والمصادقة والجسم) وافحص الاستجابة — بديل خفيف لـ Postman داخل متصفحك.
ولّد مدخلات مليئة بالأحرف الخاصة: علامات الاقتباس، والأحرف الوصفية لـ SQL/HTML/JSON، وأحرف التحكم، والرموز التعبيرية، وحيل المسارات.
للتعمّق أكثر
تقدّمك في هذا الموضوع
سجّل الدخول لتتابع تقدّمك
علّم الموضوعات مكتملة، وتابع من حيث توقفت، وافتح امتحانات التخصص.