شرح صفوف ومحتوى الفقرة
تُعد ثغرات الوصول المباشر غير الآمن للكائنات 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();}