منع تجاوز صلاحية الوصول إلى كائنات API
قد يتحقق API من هوية المستخدم بنجاح ثم يعرض فاتورة عميل آخر إذا لم يتحقق من ملكية السجل. قرار السماح يعتمد على المورد المطلوب وليس وجود جلسة فقط.
Read in English
محتويات هذا الدليل
المشكلة التي يعالجها هذا الدليل
قد يتحقق API من هوية المستخدم بنجاح ثم يعرض فاتورة عميل آخر إذا لم يتحقق من ملكية السجل. قرار السماح يعتمد على المورد المطلوب وليس وجود جلسة فقط.
خطوات تطبيق عملية
- حدد سياسة صلاحيات لكل نوع مورد
- استخرج الشركة ونطاق السماح من جلسة موثوقة على السيرفر
- قيّد استعلامات البيانات بسياق الصلاحيات
- اختبر معرفات مستخدمين وشركات أخرى
- سجل حالات الرفض دون تسريب بيانات حساسة
اختبار قبول واضح
سجل كمستخدم أ واطلب معرف فاتورة المستخدم ب. النتيجة المطلوبة رفض الوصول أو عدم الإفصاح رغم صحة صيغة المعرف.
خطأ شائع يجب تجنبه
إخفاء الأزرار في الواجهة والمعرفات غير المتوقعة ليست بديلًا عن الصلاحيات على السيرفر.
السجل نفسه حد للصلاحية
نجاح الدخول لا يمنح المستخدم حق الوصول إلى كل فاتورة أو مشروع أو عميل. يحتاج طلب القراءة أو التعديل بواسطة معرّف إلى قرار صلاحية لهذا السجل وهذا الإجراء. إخفاء المعرّف أو استخدام UUID أو حذف زر من الشاشة لا ينفذ القرار. حدد المؤسسة المالكة والعلاقة التي تمنح الوصول، وافصل المشاهدة عن الاعتماد والتصدير والحذف. طبّق القاعدة في مسار السيرفر الذي يقرأ البيانات أو يغيرها فعلًا.
قيّد جلب البيانات بنطاق المستخدم
استخرج الهوية وسياق المؤسسة من مصدر موثوق قبل جلب السجل، وأدرج قيد الملكية أو المؤسسة في الاستعلام ذي المعاملات حيث يناسب التصميم. افحص صلاحية الإجراء أيضًا. لا تعتبر رقم المؤسسة أو الدور أو المالك القادم من جسم الطلب مصدر تفويض. تحتاج الموارد التابعة إلى تحقق من العلاقة؛ وصول المستخدم إلى مشروع لا يسمح له بمرفق تابع لمشروع آخر لمجرد معرفة معرّفه.
راجع المسارات غير المباشرة
قد تختبئ المشكلة في التصدير أو البحث أو مهمة خلفية أو تعديل دفعة سجلات. إذا احتوت الدفعة على تسعة معرّفات مسموحة وآخر محظور، فحدد هل ترفض المعاملة كلها أم تعرض نتيجة جزئية واضحة. احتفظ في المهمة الخلفية بسياق موثوق يتيح فرض النطاق. صمم مفاتيح التخزين المؤقت وحدود المحتوى لمنع تبادل بيانات المؤسسات. يجب أن يسبق التفويض تسلسل الاستجابة؛ إزالة حقل داخل المتصفح لا تعالج تسريبًا حدث بالفعل.
اختبر الرفض بمصفوفة واضحة
أنشئ مؤسستين مستقلتين ومستخدمين بصلاحيات مختلفة في قاعدة اختبار. حاول قراءة موارد المؤسسة الأخرى وتعديلها وحذفها وتنزيلها وتصديرها بكل طرق الطلب المدعومة. اختبر الروابط المتداخلة والبحث والدفعات. افحص حالة البيانات مع الاستجابة؛ رسالة خطأ بعد تنفيذ تعديل غير مخول تظل فشلًا. أدرج إيقاف المستخدم وتغيير الدور والجلسة القديمة وفق نموذج الجلسات القائم. لا تختبر سجلات عملاء حقيقيين لإثبات الفكرة.
اتفق على الأخطاء والتسجيل
اختر سياسة متسقة للسجل المحظور أو غير المتاح تراعي الإفصاح، وتجنب تفاصيل تكشف وجود موارد لمؤسسة أخرى. سجل محاولات الرفض بسياق مفيد دون أسرار أو أجسام طلبات حساسة. تساعد دالة تفويض مركزية على الاتساق لكنها تحتاج اختبارات لكل نوع مورد يستخدمها. معيار النجاح هو فرض صلاحية السجل والإجراء على السيرفر في المسارات المباشرة وغير المباشرة؛ شاشة الدخول الآمنة أو المعرّف غير القابل للتخمين لا يعوضان ذلك.
مراجع أساسية وتوسع في القراءة
اربط الفكرة باحتياج شركتك.
وضح أهدافك والأنظمة الحالية والقيود المهمة قبل اختيار الحل.
خدمات تقنية المعلومات
