Reglas de seguridad de Firebase

Usa nuestras reglas de seguridad de Firebase flexibles y extensibles para asegurar tus datos en Cloud Firestore, Firebase Realtime Database y Cloud Storage.

Las reglas de Firebase Database se interponen entre tus datos y los usuarios maliciosos. Puedes escribir reglas simples o complejas que protejan los datos de tu app al nivel de detalle que tu app específica requiera.

Las reglas de seguridad de Firebase aprovechan la configuración de lenguajes extensible y flexible para definir a qué datos pueden acceder tus usuarios en Realtime Database, Cloud Firestore y Cloud Storage. Las reglas de seguridad de Firebase Realtime Database aprovechan JSON para definir las reglas, mientras que las reglas de seguridad de Cloud Firestore y de Firebase para Cloud Storage aprovechan un lenguaje único compilado para adaptarse a estructuras más complejas con reglas específicas.

Obtén más información sobre cómo configurar reglas para los productos específicos de Firebase que uses en tu app y cómo difiere el comportamiento de estas reglas entre productos de Firebase.

Funciones clave

Flexibilidad Escribe reglas personalizadas que se adapten a la estructura y comportamiento de tu app. Las reglas usan lenguajes que te permiten aprovechar tus propios datos para autorizar el acceso.
Nivel de detalle Tus reglas pueden ser tan amplias o limitadas como necesites.
Seguridad independiente Debido a que las reglas se definen fuera de tu app (en Firebase console o Firebase CLI), los clientes no son responsables de aplicar la seguridad, los errores no comprometen los datos y tus datos siempre se encuentran protegidos.

¿Cómo funcionan?

Las reglas de seguridad de Firebase funcionan mediante la coincidencia de un patrón con las rutas de acceso de la base de datos y, a continuación, aplican condiciones personalizadas para permitir el acceso a los datos en esas rutas. Todas las reglas entre los productos de Firebase tienen un componente de coincidencia de ruta de acceso y un enunciado condicional que permite el acceso de lectura o escritura. Es necesario que definas reglas para cada producto de Firebase que uses en tu app.

En Cloud Firestore y Cloud Storage, las reglas usan la siguiente sintaxis:

service <<name>> {
  // Match the resource path.
  match <<path>> {
    // Allow the request if the following conditions are true.
    allow <<methods>> : if <<condition>>
  }
}

En Realtime Database, las reglas basadas en JSON usan la siguiente sintaxis:

{
  "rules": {
    "<<path>>": {
    // Allow the request if the condition for each method is true.
      ".read": <<condition>>,
      ".write": <<condition>>
    }
  }
}

Las reglas se aplican como enunciados OR y no AND. En consecuencia, si varias reglas coinciden con una ruta de acceso y alguna de las condiciones coincidentes otorga acceso, las reglas otorgan acceso a los datos en esa ruta. Por lo tanto, si una regla amplia otorga acceso a los datos, no puedes restringirlo con una regla más específica. Sin embargo, puedes evitar este problema asegurándote de que tus reglas no se superpongan demasiado. La marca de las reglas de seguridad de Firebase se superpone en tus rutas de acceso coincidentes como advertencias del compilador.

Las reglas de seguridad de Firebase también pueden aprovechar la autenticación para otorgar permisos basados en el usuario y las condiciones que configures pueden ser muy básicas o increíblemente complejas. Obtén más información sobre el lenguaje y el comportamiento de las reglas antes de que comiences a escribirlas.

Ruta de implementación

Integra los SDK del producto Configura Cloud Firestore, Cloud Storage o Realtime Database para tu app.
Escribe tus reglas de seguridad de Firebase Obtén más información sobre cómo funcionan las reglas y configura algunas reglas básicas.
Prueba tus reglas de seguridad de Firebase Usa los emuladores de Realtime Database y Cloud Firestore a fin de probar el comportamiento de tus apps y validar tus reglas antes de implementarlas en la producción.
Implementa tus reglas de seguridad de Firebase Usa Firebase console o Firebase CLI para implementar tus reglas en la producción.

Próximos pasos