FixVibe
Covered by FixVibehigh

ກົດລະບຽບຄວາມປອດໄພ Firebase: ປ້ອງກັນການເປີດເຜີຍຂໍ້ມູນທີ່ບໍ່ໄດ້ຮັບອະນຸຍາດ

Firebase ກົດລະບຽບຄວາມປອດໄພແມ່ນການປ້ອງກັນຕົ້ນຕໍສໍາລັບແອັບພລິເຄຊັນທີ່ບໍ່ມີເຄື່ອງແມ່ຂ່າຍໂດຍໃຊ້ Firestore ແລະ Cloud Storage. ເມື່ອກົດລະບຽບເຫຼົ່ານີ້ອະນຸຍາດໃຫ້ເກີນໄປ, ເຊັ່ນການອະນຸຍາດໃຫ້ການອ່ານຫຼືຂຽນທົ່ວໂລກໃນການຜະລິດ, ຜູ້ໂຈມຕີສາມາດຂ້າມເຫດຜົນຂອງແອັບພລິເຄຊັນເພື່ອລັກຫຼືລຶບຂໍ້ມູນທີ່ລະອຽດອ່ອນ. ການຄົ້ນຄວ້ານີ້ຄົ້ນຄວ້າການຕັ້ງຄ່າທີ່ຜິດພາດທົ່ວໄປ, ຄວາມສ່ຽງຂອງຄ່າເລີ່ມຕົ້ນຂອງ 'ຮູບແບບການທົດສອບ' ແລະວິທີການປະຕິບັດການຄວບຄຸມການເຂົ້າເຖິງທີ່ອີງໃສ່ຕົວຕົນ.

CWE-284CWE-863

ກົດລະບຽບຄວາມປອດໄພ 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. ມັນລາຍງານພຽງແຕ່ການອ່ານຫຼືລາຍຊື່ທີ່ປະສົບຜົນສໍາເລັດແລະບໍ່ຂຽນ, ລຶບ, ຫຼືເກັບຮັກສາເນື້ອໃນເອກະສານຂອງລູກຄ້າ.