Saltar para o conteúdo

Verifique as suas regras de segurança Firebase contra 26 erros comuns

Cole as regras do Firestore, do Firebase Storage ou da Realtime Database. O verificador lê o texto e mostra que caminhos deixam qualquer pessoa ler ou escrever.

Cole as suas regras

Pode colar até 48 000 carateres no total, nos três campos.

Confirme que é uma pessoa

Isto mantém os pedidos automáticos fora do serviço.

As suas regras são processadas em memória na rede da Cloudflare e descartadas depois da resposta. Nada é guardado.

Resultado

Esta é uma análise estática do texto colado. Não vê custom claims, App Check, a forma dos dados nem regras que nunca foram publicadas; a nota cobre apenas o que as 26 verificações conseguem ler.

O que esta verificação não consegue ver

O verificador lê apenas o texto colado. Não vê custom claims, App Check, a forma dos seus dados nem regras que nunca foram publicadas, por isso um resultado limpo não significa que o projeto é seguro.

As 26 verificações

VerificaçãoIDServiçoGravidade
Qualquer pessoa pode escrever no Firestorefs-open-writeFirestoreCrítica
Qualquer pessoa pode ler do Firestorefs-open-readFirestoreMédia
Um match com wildcard recursivo está abertofs-recursive-wildcard-openFirestoreCrítica
Regras de modo de teste com data de expiraçãofs-test-mode-expiryFirestoreCrítica
Qualquer utilizador autenticado pode escreverfs-auth-only-writeFirestoreAlta
Qualquer utilizador autenticado pode lerfs-auth-only-readFirestoreMédia
Email aceite sem email_verifiedfs-email-unverifiedFirestoreMédia
Função lida dos dados do pedidofs-role-from-requestFirestoreAlta
Um wildcard amplo esconde regras mais estritasfs-wildcard-shadowFirestoreAlta
Os utilizadores podem escrever a sua própria função (heurística)fs-self-role-writeFirestoreAlta
As escritas aceitam quaisquer campos (heurística)fs-write-no-field-guardFirestoreMédia
read não está dividido em get e listfs-read-not-splitFirestoreInfo
Sem negação explícita por omissãofs-no-default-denyFirestoreInfo
As regras do Firestore não foram lidasfs-parse-errorFirestoreInfo
Qualquer pessoa pode ler ficheiros do Storagest-open-readStorageMédia
Qualquer pessoa pode escrever no Storagest-open-writeStorageCrítica
O match {allPaths=**} está abertost-recursive-wildcard-openStorageCrítica
Qualquer utilizador autenticado pode escrever no Storagest-auth-only-writeStorageAlta
As regras do Storage não foram lidasst-parse-errorStorageInfo
A base de dados inteira pode ser lida por qualquer pessoadb-root-read-openRealtime DatabaseCrítica
A base de dados inteira pode ser escrita por qualquer pessoadb-root-write-openRealtime DatabaseCrítica
Um nó pode ser lido por qualquer pessoadb-open-readRealtime DatabaseMédia
Um nó pode ser escrito por qualquer pessoadb-open-writeRealtime DatabaseAlta
Uma regra de um filho é anulada pelo paidb-cascade-overrideRealtime DatabaseAlta
Qualquer utilizador autenticado pode ler ou escrever em toda a base de dadosdb-auth-only-rootRealtime DatabaseAlta
As regras da Realtime Database não foram lidasdb-parse-errorRealtime DatabaseInfo

Perguntas

O que analisa o verificador de regras Firebase?

Lê as regras de segurança do Firebase que cola para o Firestore, o Cloud Storage e a Realtime Database e procura regras que deixam qualquer pessoa ler ou escrever, regras que só exigem um utilizador autenticado, confiança em dados do cliente e padrões semelhantes.

O texto das minhas regras é guardado?

Não. As regras são processadas em memória na rede da Cloudflare e descartadas assim que a resposta é enviada. Nada é guardado nem registado com o texto.

Quanto posso colar?

Até 48,000 caracteres no total, somando os três campos. Se as suas regras forem mais longas, cole a parte que quer verificar.

Porque pode uma regra de leitura pública estar certa?

Alguns dados são públicos de propósito, como um catálogo de produtos ou artigos de blogue. No Firestore e no Storage, o verificador conta uma leitura sem condição como um problema médio e retira 10 pontos, porque não consegue saber se os dados são privados. Se os dados são públicos de propósito, pode aceitar esse custo. Só na raiz da Realtime Database, classifica uma leitura aberta como mais grave.

O que são regras em modo de teste?

Quando cria uma base de dados Firestore em modo de teste, a consola escreve uma regra que permite tudo até uma data, com request.time. Até essa data qualquer pessoa pode ler e escrever; depois tudo é negado e a aplicação deixa de funcionar. Substitua-a por condições reais antes do lançamento.

Como se propagam em cascata as regras da Realtime Database?

Na Realtime Database, uma regra que dá acesso aplica-se a tudo o que está abaixo, e um filho não a pode retirar. Uma regra mais estrita num filho, sob um pai permissivo, nunca se aplica, e é por isso que o verificador a assinala.

O que significa a nota?

Resume apenas o que as verificações conseguem ler no texto colado: uma pontuação de 100 menos uma penalização por cada verificação falhada, definida pelo problema mais grave que essa verificação encontrou, e qualquer problema crítico dá F. Um ponto médio também pode ser uma heurística que pede para verificar à mão, porque só o texto não mostra se é um problema real. Um A não prova que o projeto é seguro, porque custom claims, App Check e os próprios dados estão fora do alcance.