Entender as regras de segurança do Firebase para o Cloud Storage

Tradicionalmente, a segurança tem sido uma das partes mais complexas do desenvolvimento de apps. Na maioria dos apps, os desenvolvedores precisam criar e executar um servidor que realize a autenticação (quem o usuário é) e a autorização (o que um usuário pode fazer). A autenticação e a autorização são difíceis de configurar, mais difíceis ainda de otimizar e essenciais para o sucesso do seu produto.

Da mesma maneira que o Firebase Authentication facilita a autenticação dos usuários, as regras de segurança do Firebase para Cloud Storage simplificam a autorização desses usuários e a validação das solicitações. Com as regras de segurança do Storage, você gerencia esses processos complexos por meio da especificação de permissões com base no caminho. Com apenas algumas linhas de código, você escreve 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 regras do Firebase Realtime Database.

Autenticação

Saber quem são seus usuários é uma parte importante da criação de um app. Com o Firebase Authentication, você tem uma solução específica no lado do cliente para autenticação, fácil de usar e segura. As regras de segurança do Firebase para Cloud Storage estão vinculadas ao Authentication para definir a segurança baseada no usuário. Quando um usuário é autenticado, a variável request.auth nas regras de segurança do Storage se torna um objeto que contém o código exclusivo do usuário (request.auth.uid) e todas as outras informações dele no token (request.auth.token). Quando um usuário não está autenticado, request.auth é null. Isso permite que você controle o acesso aos dados de maneira segura para cada usuário. Saiba mais na seção Segurança do usuário.

Autorização

A identificação do usuário é apenas uma parte do processo de segurança. Uma vez identificado, é preciso ter uma maneira de controlar o acesso dele aos arquivos no Cloud Storage.

Com o Cloud Storage, você especifica as regras de autorização por arquivo e por caminho. Elas residem nos servidores e determinam o acesso aos arquivos no seu app. Por exemplo, as regras de segurança padrão do Storage requerem o Firebase Authentication para que as operações read ou write sejam executadas em todos os arquivos:

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

Para editar essas regras, selecione um app do Firebase no Console do Firebase e acesse a guia Rules da seção "Storage".

Validação de dados

As regras de segurança do Firebase para Cloud Storage também podem ser usadas para validar os dados. Isso inclui a validação do nome e do caminho do arquivo e também as propriedades dos metadados dele 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/.*');
    }
  }
}

Agora que você aprendeu os conceitos básicos sobre o que as regras de segurança do Storage podem fazer, comece a usá-las.

Enviar comentários sobre…

Precisa de ajuda? Acesse nossa página de suporte.