Menguji dan Menyahpepijat Peraturan Keselamatan
Dapatkan keyakinan terhadap peraturan Realtime Database anda dengan mensimulasikan permintaan, menggunakan Rules Playground, menulis ujian automatik dengan emulator dan membaca mesej penolakan.
Menguji dan Menyahpepijat Peraturan Keselamatan ialah pelajaran Aplikasi Pengesahan Firebase dan Pangkalan Data Masa Nyata percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Aplikasi Pengesahan Firebase dan Pangkalan Data Masa Nyata, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Aplikasi Pengesahan Firebase dan Pangkalan Data Masa Nyata merangkumi sejumlah 4 pelajaran.
Mengapa Menguji Peraturan Anda
Peraturan Keselamatan ialah satu-satunya penghalang antara data anda dengan internet terbuka. Satu kesilapan boleh mendedahkan data peribadi atau menyekat pengguna yang sah.
Menguji peraturan sama pentingnya dengan menguji kod, dan Firebase menyediakan beberapa alat untuk melakukannya.
Taman Permainan Peraturan
Konsol Firebase menyertakan Taman Permainan Peraturan yang membolehkan anda mensimulasikan satu bacaan atau penulisan tanpa menyentuh data sebenar.
- Pilih bacaan atau penulisan
- Tetapkan laluan dan keadaan pengesahan
- Lihat serta-merta sama ada tindakan itu dibenarkan atau ditolak
Mensimulasikan Keadaan Pengesahan
Dalam simulator, anda boleh berjalan sebagai pengguna tanpa pengesahan atau memberikan auth.uid palsu dan tuntutan tersuai. Beginilah anda mengesahkan bahawa kawalan capaian berasaskan pengguna berfungsi dengan betul.
Membaca Penolakan
Apabila permintaan ditolak, simulator menyerlahkan peraturan tepat yang dinilai sebagai palsu. Gunakan maklumat ini untuk menentukan sebab permintaan yang sah disekat.
Emulator Tempatan
Untuk pengujian automatik yang boleh diulang, gunakan Firebase Local Emulator Suite. Suite ini menjalankan Realtime Database dan peraturannya sepenuhnya pada mesin anda, tanpa kos awan.
firebase emulators:start --only databaseMenulis Ujian Peraturan
Pustaka @firebase/rules-unit-testing membolehkan anda menegaskan bahawa operasi berjaya atau gagal. Inilah piawaian terbaik untuk keyakinan terhadap peraturan.
import { assertSucceeds, assertFails } from '@firebase/rules-unit-testing';
await assertSucceeds(authedDb.ref('users/alice').set({ name: 'Alice' }));
await assertFails(authedDb.ref('users/bob').set({ name: 'hax' }));Uji Kedua-dua Arah
Ujian peraturan yang baik menyemak kedua-dua hasil:
- Pengguna yang dibenarkan boleh melakukan tindakan yang dibenarkan (tiada penolakan palsu)
- Pengguna yang tidak dibenarkan tidak boleh melakukan tindakan yang dilarang (tiada kelemahan keselamatan)
Menguji laluan yang berjaya sahaja akan menyembunyikan jurang yang berbahaya.
Menguji Peraturan Pengesahan
Selain capaian, uji peraturan .validate anda: pastikan data yang tidak sah ditolak dan data yang berformat betul diterima.
await assertFails(db.ref('age').set('not-a-number'));
await assertSucceeds(db.ref('age').set(30));Pepijat Peraturan yang Biasa
Perhatikan kesilapan yang kerap berlaku ini:
- Peraturan bertingkat:
.readyang benar pada aras lebih tinggi mengatasi anak - Terleka bahawa peraturan bacaan dan penulisan adalah berasingan
- Menganggap
authtidak kosong tanpa membuat semakan
Menyahpepijat dengan newData
Dalam peraturan write, newData mewakili hasil yang akan dihasilkan oleh write, manakala data ialah nilai semasa. Mencatat penaakulan anda tentang perkara ini dalam kes test dapat menjelaskan banyak penolakan yang mengelirukan.
{
"posts": {
"$id": {
".write": "!data.exists() || data.child('owner').val() === auth.uid"
}
}
}Integrasi CI
Jalankan test peraturan berasaskan emulator anda dalam integrasi berterusan supaya perubahan peraturan yang berisiko dapat dikesan sebelum sampai ke persekitaran production. Ini menjadikan keselamatan suatu jaminan yang diuji terhadap regresi.
Semakan Pantas
Uji pemahaman anda tentang pengujian peraturan.
Rumusan
Kini anda boleh mengesahkan peraturan dengan yakin.
- Gunakan Rules Playground untuk semakan manual yang pantas
- Gunakan Local Emulator untuk pelaksanaan yang boleh diulang
- Tulis test dengan
assertSucceeds/assertFails - Liputi akses dan pengesahan dalam kedua-dua arah
- Jalankan test peraturan dalam CI
Pelajari Aplikasi Pengesahan Firebase dan Pangkalan Data Masa Nyata dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 11
- Pelajaran
- 44
Soalan Lazim
Adakah pelajaran “Menguji dan Menyahpepijat Peraturan Keselamatan” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Aplikasi Pengesahan Firebase dan Pangkalan Data Masa Nyata, termasuk “Menguji dan Menyahpepijat Peraturan Keselamatan”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Aplikasi Pengesahan Firebase dan Pangkalan Data Masa Nyata merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Menguji dan Menyahpepijat Peraturan Keselamatan”?
Dapatkan keyakinan terhadap peraturan Realtime Database anda dengan mensimulasikan permintaan, menggunakan Rules Playground, menulis ujian automatik dengan emulator dan membaca mesej penolakan. Anda berlatih Aplikasi Pengesahan Firebase dan Pangkalan Data Masa Nyata menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Aplikasi Pengesahan Firebase dan Pangkalan Data Masa Nyata?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Aplikasi Pengesahan Firebase dan Pangkalan Data Masa Nyata di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.
Berapa lamakah pelajaran “Menguji dan Menyahpepijat Peraturan Keselamatan” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Aplikasi Pengesahan Firebase dan Pangkalan Data Masa Nyata ini?
Ya. Setiap pelajaran Aplikasi Pengesahan Firebase dan Pangkalan Data Masa Nyata menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Memahami Sintaks Peraturan Keselamatan
- Kawalan Akses Berasaskan Pengguna
- Mengesahkan Data dengan Peraturan
- Menguji dan Menyahpepijat Peraturan Keselamatan