Reglas Firestore con Read/Write True
Las reglas de seguridad de Firestore configuradas como 'allow read, write: if true' dan a cualquier usuario — autenticado o no — acceso completo para leer, crear, modificar y eliminar todos los documentos.
Cómo Funciona
Cloud Firestore usa reglas de seguridad para controlar el acceso a documentos y colecciones. La regla 'allow read, write: if true' otorga acceso sin restricciones a todos. Los proyectos Firebase empiezan con esta regla en modo test, pero los devs frecuentemente olvidan cambiarla antes de ir a producción. Como la config de Firebase (apiKey, projectId) es pública y embebida en el frontend, cualquiera puede usar el SDK de Firebase para conectarse y hacer cualquier operación en cualquier documento. Los atacantes pueden exfiltrar todos los datos, eliminar colecciones o inyectar contenido malicioso.
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if true;
}
}
}rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /users/{userId} {
allow read, write: if request.auth != null
&& request.auth.uid == userId;
}
match /posts/{postId} {
allow read: if true;
allow write: if request.auth != null
&& request.auth.uid == resource.data.authorId;
}
}
}Ejemplo Real
En 2020, investigadores de seguridad de Comparitech encontraron 24,000 bases de datos Firebase expuestas por reglas abiertas. Contenían 4.22 mil millones de registros incluyendo passwords en texto plano, registros de salud, transacciones financieras y coordenadas GPS de apps con millones de usuarios.
Cómo Prevenirlo
- Nunca despliegues con reglas 'allow read, write: if true'
- Siempre requiere request.auth != null para operaciones autenticadas
- Limita acceso de escritura a dueños del documento usando request.auth.uid
- Usa el Firebase Emulator para probar reglas antes de desplegar
Tecnologías Afectadas
Data Hogo detecta esta vulnerabilidad automáticamente.
Escanea Tu Repo GratisVulnerabilidades Relacionadas
Realtime Database Sin Autenticación
criticalLas reglas de Firebase Realtime Database con '.read: true' y '.write: true' a nivel raíz permiten a cualquiera en internet leer y modificar todos los datos.
Reglas de Storage de Firebase Permisivas
highLas reglas de Firebase Cloud Storage permiten a cualquier usuario leer, escribir o eliminar archivos sin autenticación, exponiendo contenido subido y habilitando manipulación de archivos.
Reglas en Cascada Mal Configuradas
highLas reglas Firebase a nivel padre sobreescriben reglas restrictivas de los hijos, otorgando involuntariamente acceso más amplio del pretendido a colecciones y documentos anidados.
API Key de Firebase Expuesta en Código
mediumLa configuración de Firebase (apiKey, projectId, databaseURL) está hardcodeada en bundles de JavaScript y públicamente accesible, permitiendo a atacantes interactuar con tus servicios de Firebase.