ກົດລະບຽບຄວາມປອດໄພ Firebase ສະໜອງກົນໄກການບັງຄັບໃຊ້ເຊີບເວີແບບລະອຽດເພື່ອປົກປ້ອງຂໍ້ມູນໃນ Firestore, Realtime Database ແລະ Cloud Storage [S1]. ເນື່ອງຈາກວ່າແອັບພລິເຄຊັນ Firebase ມັກຈະພົວພັນກັບການບໍລິການຄລາວໂດຍກົງຈາກຝ່າຍລູກຄ້າ, ກົດລະບຽບເຫຼົ່ານີ້ເປັນຕົວແທນຂອງອຸປະສັກດຽວໃນການປ້ອງກັນການເຂົ້າເຖິງຂໍ້ມູນທີ່ບໍ່ໄດ້ຮັບອະນຸຍາດໃນ backend [S1].
ຜົນກະທົບຂອງກົດລະບຽບການອະນຸຍາດ
ກົດລະບຽບທີ່ບໍ່ຖືກຕ້ອງສາມາດນໍາໄປສູ່ການເປີດເຜີຍຂໍ້ມູນທີ່ສໍາຄັນ [S2]. ຖ້າກົດລະບຽບຖືກຕັ້ງໃຫ້ອະນຸຍາດຫຼາຍເກີນໄປ - ຕົວຢ່າງເຊັ່ນ, ການນໍາໃຊ້ການຕັ້ງຄ່າ 'ໂຫມດການທົດສອບ' ເລີ່ມຕົ້ນທີ່ອະນຸຍາດໃຫ້ເຂົ້າເຖິງທົ່ວໂລກ - ຜູ້ໃຊ້ໃດໆທີ່ມີຄວາມຮູ້ກ່ຽວກັບ ID ໂຄງການສາມາດອ່ານ, ແກ້ໄຂ, ຫຼືລຶບເນື້ອຫາຖານຂໍ້ມູນທັງຫມົດ [S2]. ນີ້ຂ້າມມາດຕະການຄວາມປອດໄພຂອງຝ່າຍລູກຄ້າທັງໝົດ ແລະສາມາດສົ່ງຜົນໃຫ້ສູນເສຍຂໍ້ມູນຜູ້ໃຊ້ທີ່ລະອຽດອ່ອນ ຫຼືການຂັດຂວາງການບໍລິການທັງໝົດ [S2].
ສາເຫດ: ເຫດຜົນການອະນຸຍາດບໍ່ພຽງພໍ
ສາເຫດຫຼັກຂອງຊ່ອງໂຫວ່ເຫຼົ່ານີ້ໂດຍທົ່ວໄປແມ່ນຄວາມລົ້ມເຫລວໃນການປະຕິບັດເງື່ອນໄຂສະເພາະທີ່ຈໍາກັດການເຂົ້າເຖິງໂດຍອີງໃສ່ຕົວຕົນຂອງຜູ້ໃຊ້ຫຼືຄຸນລັກສະນະຂອງຊັບພະຍາກອນ [S3]. ນັກພັດທະນາມັກຈະປ່ອຍໃຫ້ການຕັ້ງຄ່າເລີ່ມຕົ້ນເຮັດວຽກຢູ່ໃນສະພາບແວດລ້ອມການຜະລິດເຊິ່ງບໍ່ໄດ້ກວດສອບຈຸດປະສົງ request.auth [S3]. ໂດຍບໍ່ມີການປະເມີນ request.auth, ລະບົບບໍ່ສາມາດຈໍາແນກລະຫວ່າງຜູ້ໃຊ້ທີ່ຖືກຕ້ອງຕາມກົດຫມາຍແລະຜູ້ຮ້ອງຂໍທີ່ບໍ່ເປີດເຜີຍຊື່ [S3].
ການແກ້ໄຂດ້ານວິຊາການ
ການຮັບປະກັນສະພາບແວດລ້ອມ Firebase ຮຽກຮ້ອງໃຫ້ມີການຍ້າຍຈາກການເຂົ້າເຖິງແບບເປີດໄປສູ່ຮູບແບບສິດທິພິເສດສູງສຸດ.
- Enforce Authentication: ໃຫ້ແນ່ໃຈວ່າທຸກເສັ້ນທາງທີ່ລະອຽດອ່ອນຕ້ອງການເຊສຊັນຜູ້ໃຊ້ທີ່ຖືກຕ້ອງໂດຍການກວດເບິ່ງວ່າວັດຖຸ
request.authບໍ່ແມ່ນ null [S3]. - ປະຕິບັດການເຂົ້າເຖິງໂດຍອີງໃສ່ຕົວຕົນ: ກໍານົດກົດລະບຽບທີ່ປຽບທຽບ UID ຂອງຜູ້ໃຊ້ (
request.auth.uid) ກັບຊ່ອງຂໍ້ມູນພາຍໃນເອກະສານຫຼື ID ເອກະສານເອງເພື່ອຮັບປະກັນວ່າຜູ້ໃຊ້ສາມາດເຂົ້າເຖິງຂໍ້ມູນຂອງຕົນເອງໄດ້ [S3]. - ຂອບເຂດການອະນຸຍາດແບບກະຈາຍ: ຫຼີກເວັ້ນການຕົວແທນທົ່ວໂລກສໍາລັບການເກັບກໍາຂໍ້ມູນ. ແທນທີ່ຈະ, ກໍານົດກົດລະບຽບສະເພາະສໍາລັບແຕ່ລະຄໍເລັກຊັນແລະການລວບລວມຍ່ອຍເພື່ອຫຼຸດຜ່ອນຫນ້າການໂຈມຕີທີ່ເປັນໄປໄດ້ [S2].
- ການກວດສອບຜ່ານ Emulator Suite: ໃຊ້ Firebase Emulator Suite ເພື່ອທົດສອບກົດລະບຽບຄວາມປອດໄພຢູ່ໃນທ້ອງຖິ່ນ. ນີ້ອະນຸຍາດໃຫ້ມີການກວດສອບເຫດຜົນຂອງການຄວບຄຸມການເຂົ້າເຖິງຕໍ່ກັບບຸກຄົນຜູ້ໃຊ້ຕ່າງໆກ່ອນທີ່ຈະນໍາໃຊ້ກັບສະພາບແວດລ້ອມທີ່ມີຊີວິດ [S2].
ວິທີການ FixVibe ທົດສອບສໍາລັບມັນ
FixVibe ຕອນນີ້ລວມມີອັນນີ້ເປັນການສະແກນ BaaS ແບບອ່ານຢ່າງດຽວ. baas.firebase-rules ສະກັດການຕັ້ງຄ່າ Firebase ຈາກຊຸດ JavaScript ຕົ້ນສະບັບດຽວກັນ, ລວມທັງຮູບແບບຊຸດ initializeApp(...) ທີ່ທັນສະໄຫມ, ຈາກນັ້ນກວດເບິ່ງ Realtime Database, Firestore, ແລະ ZXCVFIXVIBETOKEN12ZuthenCVon ການເກັບຮັກສາທີ່ມີການຮ້ອງຂໍການອ່ານ. ສໍາລັບ Firestore, ມັນທໍາອິດພະຍາຍາມລາຍຊື່ການເກັບກໍາຮາກ; ເມື່ອລາຍຊື່ຖືກບລັອກ, ມັນຍັງກວດສອບຊື່ຄໍເລັກຊັນທີ່ລະອຽດອ່ອນທົ່ວໄປເຊັ່ນ users, accounts, customers, orders, ZXCVFIXVIBETOKEN6FXVIBETOKEN3ZXCV,ZXCV admin, ແລະ settings. ມັນລາຍງານພຽງແຕ່ການອ່ານຫຼືລາຍຊື່ທີ່ປະສົບຜົນສໍາເລັດແລະບໍ່ຂຽນ, ລຶບ, ຫຼືເກັບຮັກສາເນື້ອໃນເອກະສານຂອງລູກຄ້າ.
