الخطاف
يتطلب تأمين مشروع Supabase نهجًا متعدد الطبقات يركز على إدارة مفاتيح API وأمن قاعدة البيانات وأذونات التخزين. [S1] يمكن أن يؤدي أمان مستوى الصف (RLS) أو المفاتيح الحساسة المكشوفة بشكل غير صحيح إلى حوادث تعرض كبيرة للبيانات. [S2] [S3]
ما الذي تغير
يقوم هذا البحث بدمج عناصر التحكم الأمنية الأساسية لبيئات Supabase بناءً على إرشادات البنية الرسمية. [S1] يركز على الانتقال من تكوينات التطوير الافتراضية إلى أوضاع الإنتاج المتشددة، خاصة فيما يتعلق بآليات التحكم في الوصول. [S2] [S3]
من يتأثر
تتأثر التطبيقات التي تستخدم Supabase كواجهة خلفية كخدمة (BaaS)، خاصة تلك التي تتعامل مع البيانات الخاصة بالمستخدم أو الأصول الخاصة. [S2] المطورون الذين يقومون بتضمين مفتاح service_role في الحزم من جانب العميل أو الذين يفشلون في تمكين RLS معرضون لخطر كبير. [S1]
آلية عمل المشكلة
يستفيد Supabase من أمان مستوى الصف في PostgreSQL لتقييد الوصول إلى البيانات. [S2] بشكل افتراضي، إذا لم يتم تمكين RLS على جدول، فيمكن لأي مستخدم لديه مفتاح anon - والذي غالبًا ما يكون عامًا - الوصول إلى جميع السجلات. [S1] وبالمثل، يتطلب تخزين Supabase سياسات واضحة لتحديد المستخدمين أو الأدوار التي يمكنها تنفيذ العمليات على مجموعات الملفات. [S3]
ما يحصل عليه المهاجم
يمكن للمهاجم الذي يمتلك مفتاح API العام استغلال الجداول المفقودة RLS لقراءة أو تعديل أو حذف البيانات التي تخص مستخدمين آخرين. [S1] [S2] يمكن أن يؤدي الوصول غير المصرح به إلى مجموعات التخزين إلى كشف ملفات المستخدم الخاصة أو حذف أصول التطبيق الهامة. [S3]
كيفية اختبار FixVibe لذلك
يغطي FixVibe هذا الأمر الآن كجزء من فحوصات Supabase. يقوم baas.supabase-security-checklist-backfill بمراجعة البيانات الوصفية العامة لحاوية التخزين Supabase، والتعرض لقائمة الكائنات المجهولة، وتسمية الحاوية الحساسة، وإشارات التخزين المقيدة من الحدود المجهولة العامة. تقوم عمليات التحقق المباشرة ذات الصلة بفحص التعرض لمفتاح دور الخدمة، وموقف Supabase REST/RLS، وعمليات ترحيل SQL للمستودع بحثًا عن RLS المفقودة.
ما يجب إصلاحه
قم دائمًا بتمكين أمان مستوى الصف في جداول قاعدة البيانات وتنفيذ سياسات تفصيلية للمستخدمين الذين تمت مصادقتهم. [S2] تأكد من استخدام المفتاح "anon" فقط في التعليمات البرمجية من جانب العميل، بينما يظل مفتاح "service_role" على الخادم. [S1] قم بتكوين التحكم في الوصول إلى التخزين للتأكد من أن مجموعات الملفات خاصة بشكل افتراضي ويتم منح الوصول فقط من خلال سياسات الأمان المحددة. [S3]
