شرح صفوف ومحتوى الفقرة
تحدث الثغرات الأمنية غالباً عند نسيان فحص ملكية السجل عبر البوابات أو السياسات داخل المسار أو المتحكم. اكتب دائماً اختبارات مخصصة يحاول فيها مستخدم أول تعديل أو حذف سجل يخص مستخدماً آخر، وتحقق من إرجاع الاستجابة للرمز المحظور 403.
- اختبارات منع ثغرات IDOR (IDOR Prevention Tests): حاكِ محاولة تعديل سجل مستخدم آخر وتحقق من المنع عبر assertForbidden أو assertStatus(403).
- فحص توجيه الزوار (Guest Redirect Checks): تأكد من تحويل الزائر غير المسجل عند طلب مسار محمي إلى صفحة الدخول عبر assertRedirect.
- تغطية السماح والمنع (Role & Gate Coverage): اختبر حالة المالك المصرح له وحالة المستخدم غير المالك الممنوع بالرمز 403.
PHP
publicfunction test_stranger_ gets_403(): void
{
$stranger = new User(['id' => 99]);
$this->actingAs($stranger)
->put('/posts/1', ['title' => 'Hacked'])
->assertStatus(403);
}