FixVibe
Covered by FixVibehigh

Daftar Periksa Keamanan Supabase: RLS, API Kunci, dan Penyimpanan

Artikel penelitian ini menguraikan konfigurasi keamanan penting untuk proyek Supabase. Hal ini berfokus pada penerapan Keamanan Tingkat Baris (RLS) yang tepat untuk melindungi baris database, penanganan kunci API yang aman dan aman, serta menerapkan kontrol akses untuk bucket penyimpanan guna mengurangi risiko paparan data dan akses tidak sah.

CWE-284CWE-668

Pengaitnya

Mengamankan proyek Supabase memerlukan pendekatan berlapis yang berfokus pada manajemen kunci API, keamanan database, dan izin penyimpanan. [S1] Keamanan Tingkat Baris yang tidak dikonfigurasi dengan benar (RLS) atau kunci sensitif yang terbuka dapat menyebabkan insiden paparan data yang signifikan. [S2] [S3]

Apa yang berubah

Penelitian ini mengkonsolidasikan kontrol keamanan inti untuk lingkungan Supabase berdasarkan pedoman arsitektur resmi. [S1] Ini berfokus pada transisi dari konfigurasi pengembangan default ke postur produksi yang diperkuat, khususnya mengenai mekanisme kontrol akses. [S2] [S3]

Siapa yang terpengaruh

Aplikasi yang menggunakan Supabase sebagai Backend-as-a-Service (BaaS) akan terpengaruh, terutama aplikasi yang menangani data khusus pengguna atau aset pribadi. [S2] Pengembang yang menyertakan kunci service_role dalam bundel sisi klien atau gagal mengaktifkan RLS berisiko tinggi. [S1]

Cara kerja masalah ini

Supabase memanfaatkan Keamanan Tingkat Baris PostgreSQL untuk membatasi akses data. [S2] Secara default, jika RLS tidak diaktifkan pada tabel, setiap pengguna dengan kunci anon—yang seringkali bersifat publik—dapat mengakses semua catatan. [S1] Demikian pula, Penyimpanan Supabase memerlukan kebijakan eksplisit untuk menentukan pengguna atau peran mana yang dapat melakukan operasi pada bucket file. [S3]

Apa yang didapat penyerang

Penyerang yang memiliki kunci API publik dapat mengeksploitasi tabel yang tidak memiliki RLS untuk membaca, memodifikasi, atau menghapus data milik pengguna lain. [S1] [S2] Akses tidak sah ke bucket penyimpanan dapat mengakibatkan tereksposnya file pengguna pribadi atau penghapusan aset aplikasi penting. [S3]

Bagaimana FixVibe mengujinya

FixVibe sekarang mencakup ini sebagai bagian dari pemeriksaan Supabase. baas.supabase-security-checklist-backfill meninjau Supabase publik Metadata keranjang penyimpanan, paparan daftar objek anonim, penamaan keranjang sensitif, dan sinyal Penyimpanan tidak terikat dari batas langsung publik. Pemeriksaan langsung terkait memeriksa paparan kunci peran layanan, postur Supabase REST/RLS, dan migrasi SQL repositori untuk RLS yang hilang.

Apa yang harus diperbaiki

Selalu aktifkan Keamanan Tingkat Baris pada tabel database dan terapkan kebijakan terperinci untuk pengguna yang diautentikasi. [S2] Pastikan hanya kunci 'anon' yang digunakan dalam kode sisi klien, sedangkan kunci 'service_role' tetap ada di server. [S1] Konfigurasikan Kontrol Akses Penyimpanan untuk memastikan bahwa bucket file bersifat pribadi secara default dan akses hanya diberikan melalui kebijakan keamanan yang ditentukan. [S3]