إصلاح ثغرة RLS أو صلاحيات في Supabase — بإثبات قبل وبعد
الوصف
عندك جدول أو دالة مكشوفة، أو صلاحية مش شغالة زي ما انت متوقع؟ بصلّحها، وبوريك الإثبات.
الفرق بين الخدمة دي وغيرها إن أنا مابقولش «اتصلحت». بشغّل نفس الاستعلام بحساب مستخدم حقيقي قليل الصلاحيات من مشروعك — قبل الإصلاح وبعده — وتشوف الرد بيتغير بعينك.
أمثلة على اللي بصلّحه:
• دالة الزوار (anon) يقدروا يناديها رغم إنك عاملها revoke — ودي بتحصل لأن PUBLIC بياخد الصلاحية افتراضيًا وanon بيورث منها
• عمود المفروض مخفي وطالع في الردود — لأن المنع على مستوى العمود بيفشل في صمت لو الجدول كله مسموح
• view اتعملت عشان تقرا عمود محمي، وطلعت الكتابة والحذف شغالين من خلالها
• دالة SECURITY DEFINER من غير search_path مثبّت
• عمود جديد ضفته وطلع قابل للكتابة من المتصفح من غير ما تسمح
اللي هتستلمه: الميجريشن اللي بيقفل الثغرة، والاستعلام اللي تتأكد بيه بنفسك، ونتيجة الاختبار قبل وبعد.
لو مش متأكد فيه ثغرة أصلًا، شغّل أداة الفحص المفتوحة دي الأول:
github.com/basildraz-arch/supabase-rls-audit
البائع
معلومات
العربية
English