تعرّف على ثغرة IDOR وكيف يستغلها المهاجمون وأبرز طرق الحماية
تخيل أنك سجّلت دخولك إلى موقع ما، وفتحت صفحة حسابك الشخصي، ثم غيّرت رقماً واحداً في رابط الصفحة — فظهرت أمامك بيانات شخص آخر تماماً. هذا بالضبط ما تفعله ثغرة IDOR. إنها ليست من ثغرات الخيال العلمي أو أفلام الهاكرز، بل هي واحدة من أكثر الثغرات شيوعاً وخطورةً في تطبيقات الويب اليوم، وكثير من المواقع الكبيرة وقعت فيها في مراحل مختلفة.
![]() |
| كل ما تحتاج معرفته عن ثغرة IDOR واختراق الحسابات |
في هذا المقال، سنشرح لك ثغرة IDOR من الصفر: ما معناها، وكيف تعمل، وكيف يستغلها المهاجمون للوصول إلى حسابات وملفات وبيانات لا تخصهم، وما الذي يمكن للمطورين والمستخدمين فعله لتجنبها. لا تحتاج خبرة تقنية متقدمة لتفهم هذا المقال — فقط تابع معنا.
ما هي ثغرة IDOR؟
IDOR اختصار لعبارة Insecure Direct Object Reference، وتعني بالعربية "المرجع المباشر غير الآمن للكائنات". الاسم يبدو تقنياً بعض الشيء، لكن الفكرة بسيطة جداً.
في كثير من المواقع والتطبيقات، يُستخدم معرّف رقمي أو نصي للإشارة إلى موارد معينة — مثل ملف مستخدم، أو طلب شراء، أو مستند خاص. وعندما لا يتحقق الخادم بشكل صحيح من أن المستخدم الحالي يملك صلاحية الوصول إلى هذا المورد، يصبح بمقدور أي شخص تغيير هذا المعرّف والوصول إلى بيانات غيره.
💡 مثال توضيحي سريع: لنقل أن رابط صفحة حسابك هو:
https://example.com/account?id=1052 — لو غيّرت الرقم إلى id=1053 وظهرت لك بيانات شخص آخر، فهذا معناه أن الموقع يعاني من ثغرة IDOR.
لماذا تُعدّ هذه الثغرة خطيرة؟
ثغرة IDOR ليست مجرد مشكلة تقنية معزولة — بل هي بوابة يمكن أن تُفضي إلى اختراقات واسعة النطاق. إليك أبرز الأسباب التي تجعلها في قائمة الثغرات الأكثر خطورة:
- سهولة الاستغلال — لا تحتاج إلى أدوات متخصصة أو خبرة برمجية عميقة. يكفي تغيير رقم في الرابط أو في طلب HTTP لاستغلالها.
- صعوبة الاكتشاف — كثير من أنظمة الحماية التقليدية كالجدران النارية لا تكتشفها، لأن الطلب يبدو طبيعياً تماماً.
- التأثير الواسع — قد تمس بيانات آلاف أو ملايين المستخدمين في نفس الوقت.
- تنوع ما يمكن سرقته — من بيانات شخصية وعناوين وأرقام هواتف، إلى سجلات مالية ومستندات سرية.
- انتشارها الواسع — تُصنّفها OWASP ضمن أبرز ثغرات تطبيقات الويب منذ سنوات.
كيف يستغل المهاجمون ثغرة IDOR؟
الاستغلال يأخذ أشكالاً متعددة، وكل نوع منها يستهدف نقطة ضعف مختلفة في التطبيق. لنستعرض أبرز هذه الأساليب:
1. التلاعب بمعرّفات URL
هذا النوع هو الأبسط والأكثر شيوعاً. يحتوي رابط الصفحة على معرّف رقمي مثل
/invoice/4821، فيقوم المهاجم بتغيير هذا الرقم بشكل متسلسل أو عشوائي ليرى ما تعود به الصفحة. إذا أعاد الخادم بيانات مستخدم آخر دون التحقق من هوية طالب الطلب، فقد وقعت الكارثة.
2. التلاعب بمعاملات POST و API
ليست الثغرة محصورة في روابط المتصفح. كثير من التطبيقات ترسل بيانات عبر طلبات POST أو استدعاءات API، وفيها تكون المعرّفات مخفية داخل جسم الطلب. يستخدم المهاجم أداة مثل Burp Suite لاعتراض هذه الطلبات وتعديل المعرّفات قبل إرسالها إلى الخادم.
3. الوصول إلى ملفات وموارد مباشرة
بعض التطبيقات تخزّن الملفات بمسارات يمكن تخمينها، مثل
https://example.com/files/user_1052_report.pdf. المهاجم يغيّر الرقم في اسم الملف ليصل إلى تقارير مستخدمين آخرين. إذا لم يكن هناك تحقق من الصلاحية، يُحمَّل الملف بكل بساطة.
4. IDOR في وظائف الحذف والتعديل
الخطر لا يقتصر على القراءة فقط. إذا كانت وظيفة حذف أو تعديل سجل ما تعتمد على معرّف دون التحقق من صاحبه، يستطيع المهاجم حذف أو تعديل بيانات أشخاص آخرين. هذا النوع أشد خطورة لأن تأثيره لا يُعكس بسهولة.
مقارنة موقع آمن مقابل موقع مصاب بثغرة IDOR
لتوضيح الفرق بشكل عملي، إليك مقارنة مباشرة بين سلوك موقع آمن وآخر يعاني من الثغرة:
| السيناريو | موقع آمن ✅ | موقع مصاب بـ IDOR ❌ |
|---|---|---|
| طلب صفحة حساب بمعرّف مختلف | يُعيد رسالة خطأ أو يُحوّلك لصفحتك الخاصة | يعرض بيانات المستخدم الآخر |
| تحميل فاتورة بمعرّف غير خاص بك | يرفض الطلب ويُسجّل المحاولة | يُرسل الملف مباشرة |
| تعديل بريد مستخدم آخر عبر API | يتحقق من الهوية ويرفض الطلب | يُنفّذ التعديل على الحساب الآخر |
| حذف سجل بمعرّف عشوائي | يتحقق من الملكية قبل التنفيذ | يحذف السجل دون فحص |
| طلب تقرير مستخدم عبر رابط مباشر | يتطلب جلسة مصادقة صحيحة | يُتيح التحميل لأي شخص يعرف الرابط |
أمثلة حقيقية على ثغرة IDOR
الثغرة ليست نظرية فقط — وقعت فيها مواقع وخدمات حقيقية على مستوى عالمي:
فيسبوك وأداة دعم المستخدمين
اكتشف باحث أمني أن بإمكانه الوصول إلى بطاقات دعم مستخدمين آخرين على فيسبوك بمجرد تغيير معرّف التذكرة في الرابط. المنصة أصلحت الثغرة ودفعت له مكافأة أمنية.
منصات التجارة الإلكترونية
رُصدت حالات متعددة في منصات تجارية يمكن فيها لأي مستخدم مسجّل الدخول الوصول إلى طلبات وفواتير مستخدمين آخرين، ومشاهدة عناوين التوصيل وبيانات الدفع، فقط بتغيير رقم الطلب في الرابط.
تطبيقات الصحة والمستشفيات
من أكثر الحالات خطورة تلك التي تُكتشف فيها الثغرة في تطبيقات طبية أو حكومية، حيث يمكن الوصول إلى سجلات مرضى آخرين أو بيانات تأمينية حساسة.
أنواع ثغرات IDOR وما تستهدفه
ثغرة IDOR لا تأتي بشكل واحد فقط بل تتوزع على عدة أنواع بحسب ما تستهدفه:
- IDOR في قراءة البيانات 📌 وهو الأكثر شيوعاً، ويسمح بقراءة بيانات مستخدمين آخرين دون تعديل. النتيجة: تسريب معلومات شخصية، ومالية، وسجلات نشاط.
- IDOR في تعديل البيانات 📌 يتيح للمهاجم تغيير بيانات أشخاص آخرين كتغيير البريد الإلكتروني أو كلمة المرور أو رقم الهاتف، مما قد يؤدي إلى الاستيلاء الكامل على الحساب.
- IDOR في حذف البيانات 📌 يُمكّن المهاجم من حذف سجلات أو حسابات لا تخصه. هذا النوع ضار بشكل خاص لأن البيانات المحذوفة قد لا يمكن استعادتها.
- IDOR في الوظائف المرتبطة بالأدوار 📌 وصول المستخدم العادي إلى وظائف مخصصة لأدوار أعلى منه، مثل لوحة إدارة المشرفين أو تقارير النظام الداخلية.
- IDOR في الملفات والموارد الثابتة 📌 الوصول المباشر إلى ملفات مرفوعة على السيرفر كالصور والمستندات والتقارير عبر تخمين أو تعديل المسار.
كيف يفكر المهاجم أثناء استغلال الثغرة؟
من المفيد أن تفهم كيف يفكر المهاجم لأن هذا الفهم هو أساس الحماية. الخطوات التي يتبعها عادةً:
- التسجيل في الموقع يبدأ المهاجم بإنشاء حساب عادي أو حسابين مختلفين لمقارنة الطلبات.
- مراقبة طلبات HTTP يستخدم أداة مثل Burp Suite أو أدوات المطور في المتصفح لرصد كل الطلبات المُرسلة.
- تحديد المعرّفات يبحث في الروابط وجسم الطلبات عن أي معرّفات رقمية أو نصية قابلة للتعديل.
- التجربة والتحقق يُعدّل المعرّف ويراقب استجابة الخادم — هل يُرجع بيانات؟ هل يرفض؟ هل يُعطي خطأ؟
- الأتمتة عند النجاح إذا نجحت التجربة، يكتب سكريبتاً يُكرر العملية مع آلاف المعرّفات لجمع أكبر قدر ممكن من البيانات.
الفرق بين IDOR والثغرات المشابهة
يخلط البعض بين ثغرة IDOR وثغرات أخرى قريبة منها. إليك فروقاً واضحة:
| الثغرة | طبيعتها | الفرق عن IDOR |
|---|---|---|
| IDOR | الوصول لموارد بتغيير المعرّف | هي المرجع في هذه المقارنة |
| Broken Access Control | خلل عام في نظام الصلاحيات | IDOR هي نوع محدد منه |
| Path Traversal | التنقل في مجلدات السيرفر | يستهدف نظام الملفات لا المستخدمين |
| Privilege Escalation | رفع صلاحيات المستخدم | يهدف للحصول على دور أعلى لا بيانات أفقية |
| SQL Injection | حقن أوامر في قاعدة البيانات | أكثر تعقيداً ويستغل معالجة المدخلات |
كيف تحمي تطبيقك من ثغرة IDOR؟
الحماية من ثغرة IDOR ليست صعبة إذا اتُّبعت المبادئ الصحيحة من البداية. إليك أهم الإجراءات التي يجب على المطورين تطبيقها:
أولاً: التحقق من الصلاحيات في كل طلب
هذا هو الحل الجوهري والأساسي. في كل مرة يطلب فيها المستخدم الوصول إلى مورد ما — سواء كان صفحة أو ملفاً أو سجلاً — يجب أن يتحقق الخادم من سؤالين:
- هل هذا المستخدم مُصادق عليه؟ (Authentication)
- هل يملك صلاحية الوصول لهذا المورد تحديداً؟ (Authorization)
ثانياً: استخدام معرّفات غير قابلة للتخمين
بدلاً من الأرقام المتسلسلة (1، 2، 3...)، استخدم معرّفات UUID العشوائية مثل:
f47ac10b-58cc-4372-a567-0e02b2c3d479. هذا لا يحل المشكلة من جذرها، لكنه يجعل استغلالها عبر التخمين العشوائي أصعب بكثير.
ثالثاً: مبدأ الحد الأدنى من الصلاحيات
كل مستخدم يجب أن يصل فقط إلى ما يحتاجه فعلاً. المستخدم العادي لا يحتاج رؤية سجلات المستخدمين الآخرين، والموظف لا يحتاج رؤية بيانات المدراء. هذا المبدأ يقلل من مساحة الضرر حتى لو وُجدت ثغرة.
رابعاً: ربط الموارد بالمستخدم في قاعدة البيانات
بدلاً من الاعتماد على المعرّف الوارد في الطلب وحده، يجب ربط الاستعلام دائماً بمعرّف المستخدم الحالي. مثلاً بدلاً من:
SELECT * FROM orders WHERE id = {order_id} استخدم: SELECT * FROM orders WHERE id = {order_id} AND user_id = {current_user_id}. هكذا حتى لو أرسل المهاجم معرّف طلب شخص آخر، لن يجد النتيجة لأن شرط user_id لن يتحقق.
خامساً: اختبار التطبيق بشكل منتظم
اجعل اختبار ثغرات التفويض جزءاً من دورة التطوير. استخدم أدوات مثل Burp Suite للاختبار اليدوي، وضع اختبارات أمنية آلية في مسار CI/CD، وفكّر في الاستعانة بخبراء اختبار الاختراق بشكل دوري.
سادساً: تسجيل ومراقبة الطلبات الشاذة
ضع نظام تسجيل يرصد أي مستخدم يحاول الوصول إلى موارد لا تخصه بشكل متكرر. الأنماط الشاذة كطلبات متسلسلة بسرعة عالية على معرّفات متتابعة يجب أن تُطلق إنذاراً.
أدوات مفيدة لاكتشاف ثغرات IDOR
سواء كنت مطوراً تريد اختبار تطبيقك، أو باحثاً أمنياً يعمل في مجال Bug Bounty، إليك أبرز الأدوات المستخدمة في هذا المجال:
| الأداة | الاستخدام الأساسي | مستوى الخبرة المطلوب |
|---|---|---|
| Burp Suite | اعتراض وتعديل طلبات HTTP | متوسط إلى متقدم |
| OWASP ZAP | فحص تلقائي لثغرات الويب | مبتدئ إلى متوسط |
| Postman | اختبار طلبات API يدوياً | مبتدئ |
| Autorize (Burp Extension) | اختبار ثغرات التفويض تلقائياً | متوسط |
| أدوات المطور في المتصفح | فحص طلبات الشبكة بشكل أولي | مبتدئ |
ماذا يمكن للمستخدم العادي فعله؟
قد تتساءل: هل يستطيع المستخدم العادي حماية نفسه من ثغرة IDOR؟ الحقيقة أن المسؤولية الأساسية تقع على عاتق المطوّر والمنصة لكن يمكنك كمستخدم اتخاذ بعض الاحتياطات العملية:
- استخدم بيانات حقيقية أقل — لا تُشارك في المنصات الإلكترونية إلا ما تحتاج إليه فعلاً.
- راقب حساباتك — إذا لاحظت تغييرات لم تقم بها، أبلّغ المنصة فوراً.
- اختر المنصات الموثوقة — المنصات ذات التاريخ الأمني الجيد وبرامج مكافآت الأخطاء أكثر أماناً.
- لا تشارك روابط حسابك الشخصي — تجنب مشاركة روابط تحتوي على معرّفاتك الشخصية.
- أبلغ عن الثغرات بشكل أخلاقي — إن اكتشفت ثغرة في موقع ما، أبلغ عنها عبر قنوات الإفصاح المسؤول ولا تستغلها.
ثغرة IDOR وبرامج Bug Bounty
لمن يهتم بمجال أمن المعلومات الهجومي، تُعدّ ثغرة IDOR واحدة من أكثر الثغرات المكافأ عليها في برامج Bug Bounty. كثير من الباحثين الأمنيين حصلوا على مكافآت تتراوح بين بضعة آلاف وعشرات الآلاف من الدولارات مقابل اكتشاف هذه الثغرات في منصات كبرى. السبب في ذلك أن هذه الثغرات تتمتع بتأثير مباشر وواضح يسهل إثباته، وتصنيف عالٍ في CVSS خاصةً إذا تعلق الأمر ببيانات حساسة، إضافةً إلى سهولة التحقق منها من جانب فريق الأمن في الشركة.
بعد هذا الشرح الشامل، إليك أهم النقاط:
- ثغرة IDOR تحدث عندما يصل مستخدم إلى موارد لا تخصه بمجرد تغيير معرّف في الطلب.
- هي من أكثر الثغرات شيوعاً وتأثيراً في تطبيقات الويب، وصنّفتها OWASP ضمن أخطر الفئات.
- استغلالها لا يتطلب أدوات معقدة — أحياناً يكفي تغيير رقم واحد في الرابط.
- الحل الجذري هو التحقق من صلاحية المستخدم في كل طلب على حدة في الخادم.
- استخدام UUID، ومبدأ الحد الأدنى من الصلاحيات، وربط الموارد بمعرّف المستخدم في قاعدة البيانات — كلها ممارسات تقلل من خطر الثغرة بشكل كبير.
- المستخدم العادي ليس عاجزاً — يمكنه التنبه والإبلاغ واختيار المنصات الآمنة.
الخاتمة: الأمن الرقمي ليس رفاهية — بل هو ضرورة في عالم يتزايد فيه الاعتماد على التطبيقات والخدمات الإلكترونية. ثغرة IDOR ليست نهاية العالم إذا عُرفت وعُولجت في الوقت المناسب، لكنها قد تكون كارثية إذا أُهملت. سواء كنت مطوراً أو مسؤولاً أمنياً أو مجرد مستخدم يريد حماية بياناته، فالوعي هو أول خطوات الحماية الحقيقية.
التسميات
وعي أمني
