Comprender las reglas de seguridad de Firebase para el almacenamiento en la nube

Tradicionalmente, la seguridad ha sido una de las partes más complejas del desarrollo de aplicaciones. En la mayoría de las aplicaciones, los desarrolladores deben crear y ejecutar un servidor que maneje la autenticación (quién es un usuario) y la autorización (qué puede hacer un usuario). La autenticación y la autorización son difíciles de configurar, más difíciles de lograr y fundamentales para el éxito de su producto.

De manera similar a cómo Firebase Authentication le facilita la autenticación de sus usuarios, Firebase Security Rules for Cloud Storage le facilita autorizar usuarios y validar solicitudes. Las reglas de seguridad de Cloud Storage administran la complejidad por usted permitiéndole especificar permisos basados ​​en rutas. En solo unas pocas líneas de código, puedes escribir reglas de autorización que restrinjan las solicitudes de Cloud Storage a un determinado usuario o limiten el tamaño de una carga.

Firebase Realtime Database tiene una característica similar, llamada Reglas de seguridad de Firebase Realtime Database.

Autenticación

Saber quiénes son sus usuarios es una parte importante de la creación de una aplicación, y Firebase Authentication proporciona una solución de autenticación fácil de usar, segura y exclusiva del lado del cliente. Las reglas de seguridad de Firebase para Cloud Storage se vinculan con la autenticación de Firebase para la seguridad basada en el usuario. Cuando un usuario se autentica con Firebase Authentication, la variable request.auth en las reglas de seguridad de Cloud Storage se convierte en un objeto que contiene el ID único del usuario ( request.auth.uid ) y toda la demás información del usuario en el token ( request.auth.token ). . Cuando el usuario no está autenticado, request.auth es null . Esto le permite controlar de forma segura el acceso a los datos por usuario. Puede obtener más información en la sección Autenticación .

Autorización

Identificar a su usuario es sólo una parte de la seguridad. Una vez que sepa quiénes son, necesitará una forma de controlar su acceso a los archivos en Cloud Storage.

Cloud Storage le permite especificar reglas de autorización por archivo y por ruta que residen en nuestros servidores y determinan el acceso a los archivos en su aplicación. Por ejemplo, las reglas de seguridad de almacenamiento en la nube predeterminadas requieren autenticación de Firebase para poder realizar operaciones de read o write en todos los archivos:

service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write: if request.auth != null;
    }
  }
}

Puedes editar estas reglas seleccionando una aplicación de Firebase en Firebase console y viendo la pestaña Rules de la sección Almacenamiento.

Validación de datos

Las reglas de seguridad de Firebase para almacenamiento en la nube también se pueden usar para la validación de datos, incluida la validación del nombre y la ruta del archivo, así como las propiedades de los metadatos del archivo, como contentType y size .

service firebase.storage {
  match /b/{bucket}/o {
    match /images/{imageId} {
      // Only allow uploads of any image file that's less than 5MB
      allow write: if request.resource.size < 5 * 1024 * 1024
                   && request.resource.contentType.matches('image/.*');
    }
  }
}

Próximos pasos

  • Comience a planificar el desarrollo de reglas para sus depósitos de Cloud Storage.

  • Obtenga más información sobre cómo proteger sus datos mediante reglas de seguridad.