Firebase Xavfsizlik qoidalari Firestore, Realtime Database va Cloud Storage [S1]’dagi ma’lumotlarni himoya qilish uchun donador, server tomonidan qo‘llaniladigan mexanizmni taqdim etadi. Firebase ilovalari ko'pincha ushbu bulut xizmatlari bilan bevosita mijoz tomonidan o'zaro aloqada bo'lganligi sababli, bu qoidalar [S1] orqa ma'lumotlariga ruxsatsiz kirishni oldini oluvchi yagona to'siqdir.
Ruxsat beruvchi qoidalarning ta'siri
Noto'g'ri sozlangan qoidalar [S2] ma'lumotlarining jiddiy zararlanishiga olib kelishi mumkin. Agar qoidalar haddan tashqari ruxsat beruvchi qilib o'rnatilsa (masalan, global kirishga ruxsat beruvchi standart "sinov rejimi" sozlamalaridan foydalangan holda - loyiha identifikatorini biladigan har qanday foydalanuvchi [S2] ma'lumotlar bazasi tarkibini o'qishi, o'zgartirishi yoki o'chirishi mumkin. Bu mijoz tomonidagi barcha xavfsizlik choralarini chetlab o'tadi va foydalanuvchining maxfiy ma'lumotlarini yo'qotishiga yoki [S2] xizmatining to'liq uzilishiga olib kelishi mumkin.
Asosiy sabab: avtorizatsiya mantig'i yetarli emas
Ushbu zaifliklarning asosiy sababi, odatda, foydalanuvchi identifikatori yoki [S3] resurs atributlari asosida kirishni cheklovchi maxsus shartlarni amalga oshirmaslikdir. Ishlab chiquvchilar ko'pincha request.auth obyektini [S3] tasdiqlamaydigan ishlab chiqarish muhitlarida standart konfiguratsiyalarni faol qoldiradilar. request.auth ni baholamasdan, tizim autentifikatsiya qilingan qonuniy foydalanuvchi va anonim so‘rovchi [S3] o‘rtasida farqlay olmaydi.
Texnik tuzatish
Firebase muhitini himoya qilish ochiq kirishdan asosiy imtiyozli modelga o'tishni talab qiladi.
- Autentifikatsiyani amalga oshirish:
request.authobyekti null [S3] emasligini tekshirish orqali barcha nozik yo‘llar to‘g‘ri foydalanuvchi seansini talab qilishiga ishonch hosil qiling. - Identifikatsiyaga asoslangan kirishni amalga oshirish: Foydalanuvchilar faqat [S3] maʼlumotlariga kirishiga ishonch hosil qilish uchun foydalanuvchining UID (
request.auth.uid) hujjat ichidagi maydon yoki hujjat identifikatorining oʻzi bilan solishtiradigan qoidalarni sozlang. - Granular ruxsat doirasi: Toʻplamlar uchun global joker belgilardan saqlaning. Buning o'rniga, [S2] potentsial hujum yuzasini minimallashtirish uchun har bir to'plam va kichik to'plam uchun maxsus qoidalarni belgilang.
- Emulator Suite orqali tekshirish: Xavfsizlik qoidalarini mahalliy darajada sinab ko'rish uchun Firebase Emulator Suite-dan foydalaning. Bu [S2] jonli muhitiga joylashtirishdan oldin turli foydalanuvchi shaxslariga nisbatan kirishni boshqarish mantiqini tekshirish imkonini beradi.
FixVibe buni qanday sinovdan o'tkazadi
FixVibe endi buni faqat o‘qish uchun BaaS skanerlash sifatida o‘z ichiga oladi. baas.firebase-rules Firebase konfiguratsiyasini bir xil kelib chiqqan JavaScript toʻplamlaridan, jumladan, zamonaviy initializeApp(...) toʻplam shakllaridan ajratib oladi, soʻngra Realtime Database, Firestore va ZXCVFIXVIBETXENThenut bilan tekshiriladi. faqat o'qish uchun so'rovlar. Firestore uchun u birinchi navbatda ildiz to'plami ro'yxatini sinab ko'radi; roʻyxat bloklanganida, u users, accounts, customers, orders, users, ZXCVFIXENVIXCV, kabi umumiy sezgir toʻplam nomlarini ham tekshiradi. messages, admin va settings. U faqat muvaffaqiyatli anonim o'qishlar yoki ro'yxatlar haqida xabar beradi va mijozlar hujjati mazmunini yozmaydi, o'chirmaydi yoki saqlamaydi.
