قلاب
ایمن سازی یک پروژه Supabase نیازمند یک رویکرد چند لایه با تمرکز بر مدیریت کلید API، امنیت پایگاه داده و مجوزهای ذخیره سازی است. [S1] پیکربندی نادرست امنیت سطح ردیف (RLS) یا کلیدهای حساس در معرض قرار گرفتن می تواند منجر به حوادث قابل توجهی در معرض قرار گرفتن داده ها شود. [S2] [S3]
چه چیزی تغییر کرد
این تحقیق کنترلهای امنیتی اصلی را برای محیطهای Supabase بر اساس دستورالعملهای معماری رسمی ادغام میکند. [S1] روی انتقال از تنظیمات پیشفرض توسعه به وضعیتهای سخت شده تولید، به ویژه در مورد مکانیسمهای کنترل دسترسی تمرکز دارد. [S2] [S3]
چه کسی تحت تاثیر قرار می گیرد
برنامههایی که از Supabase بهعنوان Backend-as-a-Service (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]
