Reglas de seguridad de Firebase

Utilice nuestras reglas de seguridad de Firebase flexibles y extensibles para proteger sus datos en Cloud Firestore, Firebase Realtime Database y Cloud Storage.

Las reglas de seguridad de Firebase se interponen entre sus datos y los usuarios malintencionados. Puede escribir reglas simples o complejas que protejan los datos de su aplicación al nivel de granularidad que requiere su aplicación específica.

Las reglas de seguridad de Firebase aprovechan lenguajes de configuración extensibles y flexibles para definir a qué datos pueden acceder sus usuarios para Realtime Database, Cloud Firestore y Cloud Storage. Las reglas de seguridad de bases de datos en tiempo real de Firebase aprovechan JSON en las definiciones de reglas, mientras que las reglas de seguridad de Cloud Firestore y las reglas de seguridad de Firebase para Cloud Storage aprovechan un lenguaje único creado para adaptarse a estructuras específicas de reglas más complejas.

Obtenga más información sobre cómo configurar reglas para los productos de Firebase específicos que usa en su aplicación y cómo el comportamiento de las reglas difiere entre los productos de Firebase.

Capacidades clave

Flexibilidad Escriba reglas personalizadas que tengan sentido para la estructura y el comportamiento de su aplicación. Las reglas utilizan lenguajes que le permiten aprovechar sus propios datos para autorizar el acceso.
Granularidad Sus reglas pueden ser tan amplias o tan estrictas como necesite.
Seguridad independiente Debido a que las reglas se definen fuera de su aplicación (en Firebase console o Firebase CLI), los clientes no son responsables de hacer cumplir la seguridad, los errores no comprometen los datos y sus datos siempre están protegidos.

¿Cómo trabajan?

Las reglas de seguridad de Firebase funcionan haciendo coincidir un patrón con las rutas de la base de datos y luego aplicando condiciones personalizadas para permitir el acceso a los datos en esas rutas. Todas las reglas de los productos Firebase tienen un componente de coincidencia de rutas y una declaración condicional que permite acceso de lectura o escritura. Debes definir reglas para cada producto de Firebase que uses en tu aplicación.

Para 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>>
  }
}

Para Realtime Database, las reglas basadas en JSON utilizan 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 declaraciones OR , no como declaraciones AND . En consecuencia, si varias reglas coinciden con una ruta y cualquiera 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 puede restringirlos con una regla más específica. Sin embargo, puedes evitar este problema asegurándote de que tus reglas no se superpongan demasiado. El indicador de Reglas de seguridad de Firebase se superpone en las rutas 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 establezcas pueden ser muy básicas o increíblemente complejas. Obtenga más información sobre el lenguaje y el comportamiento de las reglas antes de comenzar a escribir reglas.

Ruta de implementación

Integrar los SDK del producto Configure Cloud Firestore , Cloud Storage o Realtime Database para su aplicación.
Escriba sus reglas de seguridad de Firebase Obtenga más información sobre cómo funcionan las reglas y configure algunas reglas básicas
Pruebe sus reglas de seguridad de Firebase Utilice los emuladores de Realtime Database y Cloud Firestore para probar el comportamiento de su aplicación y validar sus reglas antes de implementarlas en producción.
Implemente sus reglas de seguridad de Firebase Utilice Firebase console o Firebase CLI para implementar sus reglas en producción.

Próximos pasos