Firebase Security Rules menyediakan perlindungan tangguh yang dapat disesuaikan sepenuhnya untuk data Anda di Cloud Firestore, Realtime Database, dan Cloud Storage. Anda dapat secara mudah memulai Rules dengan mengikuti langkah-langkah dalam panduan ini, guna mengamankan data dan melindungi aplikasi dari pengguna yang berniat jahat.
Pahami bahasa Firebase Security Rules
Sebelum mulai menulis aturan, sebaiknya luangkan waktu untuk meninjau bahasa Firebase Security Rules tertentu untuk produk Firebase yang Anda gunakan.
Cloud Storage memanfaatkan superset dari Common Expression Language (CEL) yang bergantung pada pernyataan match
dan allow
yang menetapkan kondisi untuk akses di jalur yang ditentukan.
Mulailah dengan mempelajari sintaksis inti bahasa Firebase Security Rules.
Siapkan Authentication
Jika Anda belum melakukannya, tambahkan Firebase Authentication ke aplikasi Anda. Firebase Authentication mendukung banyak metode autentikasi umum dan terintegrasi dengan Firebase Security Rules untuk memberikan kemampuan verifikasi yang komprehensif.
Anda dapat menyiapkan informasi autentikasi tambahan khusus untuk aplikasi Anda.
Pelajari lebih lanjut tentang Firebase Security Rules dan Firebase Authentication.
Menentukan struktur data dan aturan
Cara Anda menyusun data dapat memengaruhi cara penyusunan dan penerapan aturan. Saat Anda menentukan struktur data, pertimbangkan implikasinya pada struktur Rules Anda.
Misalnya, di Cloud Storage, Anda mungkin ingin menyertakan kolom yang menunjukkan peran tertentu untuk setiap pengguna. Kemudian, aturan Anda dapat membaca kolom tersebut dan menggunakannya untuk memberikan akses berbasis peran. Anda juga dapat membuat database Cloud Firestore, menyimpan kriteria akses di dokumen Cloud Firestore, lalu mengakses dokumen tersebut dari Cloud Storage Security Rules.
Saat Anda menentukan arsitektur data dan aturan, pertimbangkan sifat aturan yang menurun atau tidak menurun, bergantung pada produk Anda. Dengan Realtime Database, aturan berfungsi dari atas ke bawah, dengan aturan yang lebih dangkal akan menggantikan aturan yang lebih dalam. Jika aturan memberikan izin baca atau tulis pada jalur tertentu, aturan tersebut juga akan memberikan akses ke semua node turunan di bawahnya. Sebaliknya, dengan Cloud Firestore dan Cloud Storage, aturan hanya berlaku pada tingkat hierarki data tertentu, dan Anda menulis aturan eksplisit untuk mengontrol akses ke berbagai tingkat.
Mengakses aturan Anda
Untuk melihat Rules yang sudah ada, gunakan Firebase CLI atau Firebase console. Pastikan Anda mengedit aturan menggunakan metode yang sama secara konsisten, agar tidak ada pembaruan yang tumpang tindih secara tidak sengaja. Jika tidak yakin bahwa aturan yang Anda tentukan secara lokal mencerminkan pembaruan terkini, Firebase console selalu menunjukkan versi Firebase Security Rules yang paling baru di-deploy.
Untuk mengakses aturan dari Firebase console, pilih project Anda, lalu klik Storage di panel navigasi sebelah kiri. Klik Rules setelah Anda berada di database atau bucket penyimpanan yang tepat.
Untuk mengakses aturan dari Firebase CLI, buka file aturan yang tercantum pada file firebase.json Anda.
Menulis aturan dasar
Saat Anda mengembangkan aplikasi dan memahami Rules, coba terapkan beberapa Rules untuk menangani beberapa kasus penggunaan dasar, termasuk:
- Hanya pemilik konten: Membatasi akses ke konten berdasarkan pengguna.
- Akses campuran: Membatasi akses tulis berdasarkan pengguna, tetapi mengizinkan akses baca publik.
- Akses berbasis atribut: Membatasi akses ke grup atau tipe pengguna.
Menguji aturan
Jika Anda menyiapkan Firebase Security Rules di Firebase console, Anda dapat menggunakan Firebase Rules Playground untuk memvalidasi perilaku dengan cepat. Namun, sebaiknya lakukan pengujian yang lebih menyeluruh dengan Local Emulator Suite sebelum men-deploy perubahan ke fase produksi.
Men-deploy aturan
Gunakan Firebase console atau Firebase CLI untuk men-deploy aturan ke tahap produksi. Ikuti langkah-langkah yang diuraikan dalam Mengelola dan men-deploy Firebase Security Rules.