انتقل إلى محتوى الدرس

Preventing IDOR and Mass Assignment منع ثغرات IDOR والإسناد الجماعي

فحص الصلاحيات في المسارات والمتحكمات وقوالب Blade عبر @can و @cannot وتطبيق قواعد التحصين الأمني الشامل في Laravel.
1 صفوف تعليمية
إطار العمل Laravel
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

تُعد ثغرات الوصول المباشر غير الآمن للكائنات IDOR والإسناد الجماعي Mass Assignment من أشهر ثغرات تطبيقات الويب. في Laravel 12، تقضي على ثغرة IDOR بفرض فحص Policy أو تقييد الاستعلام بالعلاقة في كل مسار، وتقضي على الإسناد الجماعي بتمرير البيانات المتحقق منها فقط عبر $request->validated مع تحديد مصفوفة $fillable.

  • منع IDOR بالسياسات (Policy Enforcement): افحص دائماً ملكية السجل عبر Gate::authorize قبل أي تعديل أو حذف.
  • تقييد الاستعلام بالملكية (Scoped Relation): استعلم من خلال علاقة المستخدم الحالي مثل $request->user->posts.
  • تمرير المدخلات الموثقة فقط (validated Only): لا تمرر أبداً $request->all لدوال الحفظ، بل استخدم $request->validated حصرياً.
PHP
public function update(UpdatePostRequest $request, Post $post)
{
    Gate::authorize('update', $post);

    $post->update($request->validated());
    return back();}