Les regles de seguretat Firebase proporcionen un mecanisme granular i forçat pel servidor per protegir les dades a Firestore, la base de dades en temps real i l'emmagatzematge al núvol [S1]. Com que les aplicacions Firebase sovint interactuen amb aquests serveis al núvol directament des del costat del client, aquestes regles representen l'única barrera que impedeix l'accés no autoritzat a les dades del backend [S1].
Impacte de les regles permissives
Les regles mal configurades poden provocar una exposició important de dades [S2]. Si les regles s'estableixen perquè siguin massa permissives (per exemple, utilitzant la configuració predeterminada del "mode de prova" que permet l'accés global), qualsevol usuari que conegui l'ID del projecte pot llegir, modificar o suprimir tot el contingut de la base de dades [S2]. Això passa per alt totes les mesures de seguretat del client i pot provocar la pèrdua d'informació confidencial de l'usuari o una interrupció total del servei [S2].
Causa arrel: lògica d'autorització insuficient
La causa principal d'aquestes vulnerabilitats sol ser la manca d'implementació de condicions específiques que restringeixen l'accés segons la identitat de l'usuari o els atributs de recursos [S3]. Els desenvolupadors sovint deixen actives les configuracions predeterminades en entorns de producció que no validen l'objecte request.auth [S3]. Sense avaluar request.auth, el sistema no pot distingir entre un usuari legítim autenticat i un sol·licitant anònim [S3].
Reparació tècnica
La seguretat d'un entorn Firebase requereix passar d'accés obert a un model de principal amb menys privilegis.
- Aplica l'autenticació: assegureu-vos que tots els camins sensibles requereixen una sessió d'usuari vàlida comprovant si l'objecte
request.authno és nul [S3]. - Implementar l'accés basat en la identitat: configureu regles que comparen l'UID de l'usuari (
request.auth.uid) amb un camp del document o amb l'identificador del document en si per garantir que els usuaris només puguin accedir a les seves pròpies dades [S3]. - Apartament de permisos granulars: eviteu els comodins globals per a les col·leccions. En lloc d'això, definiu regles específiques per a cada col·lecció i subcol·lecció per minimitzar la superfície d'atac potencial [S2].
- Validació mitjançant Emulator Suite: utilitzeu Firebase Emulator Suite per provar les regles de seguretat localment. Això permet verificar la lògica de control d'accés amb diverses persones d'usuari abans de desplegar-se en un entorn en directe [S2].
Com ho prova FixVibe
FixVibe ara inclou això com a exploració de només lectura BaaS. baas.firebase-rules extreu la configuració de Firebase dels paquets de JavaScript del mateix origen, incloses les formes modernes de paquets initializeApp(...), i després comprova la base de dades en temps real, el Firestore i l'emmagatzematge ZXCVFIXVIBETOKEN12 sense llegir amb sol·licituds d'emmagatzematge. Per a Firestore, primer prova la llista de col·leccions arrel; quan la llista està bloquejada, també investiga els noms de col·leccions sensibles comuns com ara users, accounts, customers, orders, ZXCVFIXVIBETOKEN, ZXCVFIXVIBETOKEN, messages, admin i settings. Només informa de lectures o llistats anònims amb èxit i no escriu, suprimeix ni emmagatzema el contingut dels documents del client.
