Entenda as regras de segurança do Firebase para armazenamento em nuvem

Tradicionalmente, a segurança tem sido uma das partes mais complexas do desenvolvimento de aplicativos. Na maioria das aplicações, os desenvolvedores devem construir e executar um servidor que lide com a autenticação (quem é o usuário) e a autorização (o que o usuário pode fazer). Autenticação e autorização são difíceis de configurar, mais difíceis de acertar e essenciais para o sucesso do seu produto.

Semelhante à forma como o Firebase Authentication facilita a autenticação de seus usuários, as regras de segurança do Firebase para Cloud Storage facilitam a autorização de usuários e a validação de solicitações. As regras de segurança do Cloud Storage gerenciam a complexidade para você, permitindo que você especifique permissões baseadas em caminho. Em apenas algumas linhas de código, você pode escrever regras de autorização que restringem as solicitações do Cloud Storage a um determinado usuário ou limitam o tamanho de um upload.

O Firebase Realtime Database tem um recurso semelhante, chamado Firebase Realtime Database Security Rules

Autenticação

Saber quem são seus usuários é uma parte importante da criação de um aplicativo, e o Firebase Authentication oferece uma solução de autenticação fácil de usar e segura apenas no lado do cliente. As regras de segurança do Firebase para Cloud Storage estão vinculadas ao Firebase Authentication para segurança baseada no usuário. Quando um usuário é autenticado com o Firebase Authentication, a variável request.auth nas regras de segurança do Cloud Storage se torna um objeto que contém o ID exclusivo do usuário ( request.auth.uid ) e todas as outras informações do usuário no token ( request.auth.token ) . Quando o usuário não está autenticado, request.auth é null . Isso permite que você controle com segurança o acesso aos dados por usuário. Você pode aprender mais na seção Autenticação .

Autorização

Identificar seu usuário é apenas parte da segurança. Depois de saber quem eles são, você precisará controlar o acesso deles aos arquivos no Cloud Storage.

O Cloud Storage permite especificar regras de autorização por arquivo e por caminho que residem em nossos servidores e determinar o acesso aos arquivos em seu aplicativo. Por exemplo, as regras de segurança padrão do Cloud Storage exigem autenticação do Firebase para executar qualquer operação read ou write em todos os arquivos:

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

Você pode editar essas regras selecionando um aplicativo do Firebase no console do Firebase e visualizando a guia Rules da seção Armazenamento.

Data de validade

As regras de segurança do Firebase para Cloud Storage também podem ser usadas para validação de dados, incluindo a validação de nome e caminho do arquivo, bem como propriedades de metadados do arquivo, como contentType e 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 passos

  • Comece a planejar o desenvolvimento de regras para seus buckets do Cloud Storage.

  • Saiba mais sobre como proteger seus dados usando regras de segurança.