Logo AnabisolutionsAnabisolutions
Vibe Coding

Basis data dan Row Level Security: melindungi data di aplikasi vibe coding

ABTim AnabisolutionsAnalog Bina Solutions3 menit baca
Basis data dan Row Level Security: melindungi data di aplikasi vibe coding

Aplikasi modern sering mengakses basis data langsung dari browser melalui API terkelola. Praktis, tetapi berbahaya bila hak akses tidak diatur. Row Level Security, atau RLS, adalah mekanisme di basis data yang menentukan baris mana yang boleh dilihat atau diubah setiap pengguna. Tanpanya, satu kunci publik bisa membuka seluruh tabel kepada siapa saja.

Cara kerja RLS secara sederhana

Dengan RLS aktif, setiap kueri disaring oleh kebijakan. Misalnya, kebijakan 'pengguna hanya melihat baris yang kolom pemiliknya sama dengan ID pengguna yang sedang masuk' memastikan setiap orang hanya melihat datanya sendiri.

Penyaringan terjadi di basis data, sehingga tidak bisa dilewati dari browser.

Kesalahan umum pada hasil AI

AI sering membuat tabel tanpa mengaktifkan RLS, atau membuat kebijakan terlalu longgar seperti mengizinkan semua orang membaca dan menulis demi membuat aplikasi 'langsung bekerja'. Aplikasi memang berjalan, tetapi data terbuka.

Periksa setiap tabel, terutama yang menyimpan data pribadi.

Contoh kebijakan yang masuk akal

Pola yang sering dipakai:

  • Data publik, seperti artikel terbit: hanya baca untuk semua orang.
  • Data pribadi: baca dan tulis hanya untuk pemiliknya.
  • Data administrasi: hanya untuk peran admin.
  • Tulis melalui server dengan kunci layanan untuk operasi khusus.

Default tertutup lebih aman

Mulailah dengan menolak semua akses, lalu izinkan hanya yang diperlukan.

Menguji kebijakan

Uji dengan beberapa akun berbeda dan juga tanpa login. Coba membaca, mengubah, dan menghapus data milik pengguna lain. Semua upaya itu harus ditolak.

Catat pengujian ini dan ulangi setiap kali skema atau kebijakan berubah.

Pisahkan kunci publik dan kunci layanan

Kunci publik tunduk pada RLS, sedangkan kunci layanan melewatinya. Karena itu kunci layanan hanya boleh dipakai di server dan tidak pernah di kode yang sampai ke browser.

Satu kebocoran kunci layanan sama dengan membuka seluruh basis data.

Dokumentasikan skema dan kebijakan

Simpan skema dan kebijakan sebagai berkas SQL di repositori sehingga dapat ditinjau dan dipulihkan. Minta AI menjelaskan setiap kebijakan dengan bahasa biasa agar Anda memahami apa yang diizinkan.

Dengan cara ini keamanan data menjadi bagian terawat dari proyek, bukan keberuntungan.

Contoh kasus kebocoran yang umum

Bayangkan aplikasi catatan di mana tabel catatan tidak memakai RLS. Pengguna yang membuka konsol browser dan memanggil API dengan kunci publik dapat membaca catatan semua orang. Aplikasi terlihat normal bagi semua, hingga seseorang mencoba.

Kasus seperti ini sering terjadi dan sepenuhnya dapat dicegah dengan satu kebijakan yang tepat dan pengujian sederhana.

Mau kami bantu menimbang?Ceritakan alur Anda, kami beri pendapat jujur dalam 1×24 jam kerja.
Konsultasi gratis

Pertanyaan yang sering muncul

Ya, tanpa komitmen. Kami balas dalam 1×24 jam kerja.

Suka artikel ini?
AB

Tentang Tim AnabisolutionsStudio digital dari Pekanbaru yang mengerjakan website, aplikasi, dan sistem untuk klien di Riau dan sekitarnya.

Topik:Vibe CodingBasis dataKeamanan

Artikel menarik lainnya

Apa kata klien kami

Sangat profesional. Hasilnya melebihi ekspektasi dan komunikasi selama proyek lancar.
Logo LelangbankBudi SantosoPlatform lelang, Lelangbank
Tim yang kompeten. Custom plugin WordPress-nya pas sekali dengan kebutuhan kami.
Logo Ruang Multi TalentSarah WijayaSitus lembaga pelatihan, Ruang Multi Talent
Kualitas kode bersih dan support after sales luar biasa. Pasti kembali lagi.
Logo QuipworkAhmad RahmanDashboard internal, Quipwork

Punya masalah serupa? Ceritakan.

Konsultasi awal gratis dan tanpa komitmen. Kami balas dalam 1×24 jam kerja.

hello@anabisolutions.comJalan Nurul Yaqin No. 1, Pekanbaru, Riau, Indonesia
Chat via WhatsApp

Mulai dari satu pesan

Gratis dan tanpa komitmen.

Anda butuh apa?
Kami balas dalam 1×24 jam kerja.