// Comparação de decisão
Firebase vs Supabase: segurança pra app feito com IA
Resposta rápida
Firebase e Supabase resolvem o mesmo problema (backend pra app que fala direto do browser) e têm o mesmo ponto único de falha: a regra de acesso. No Supabase é a RLS (Row Level Security) por tabela; no Firebase são as Security Rules do Firestore/Storage. Nos dois, o furo campeão é a regra aberta: RLS desligada de um lado, allow read, write: if true do outro. O resultado é idêntico, banco público via chave que está no client.
A chave pública (anon_key no Supabase, apiKey no Firebase) NÃO é o segredo; ela é feita pra ficar no front. A proteção real é a regra. Escolha pelo ecossistema (SQL vs NoSQL, Postgres vs Firestore); a disciplina de regra é obrigatória nos dois.
Mesmo furo, nomes diferentes
O modelo mental é o mesmo; muda a sintaxe e onde você fecha:
| Conceito | Supabase | Firebase |
|---|---|---|
| Camada de proteção | RLS por tabela | Security Rules (Firestore/Storage) |
| Chave no client | anon_key (pública) | apiKey (pública) |
| Furo campeão | RLS desligada | Rule allow if true |
| Checagem de dono | policy com auth.uid() | request.auth.uid |
| Vazamento de arquivo | Bucket Storage público | Storage bucket sem regra |
O que revisar em cada um
No Supabase, teste o que a anon_key acessa sem login e confira RLS + policy com auth.uid() tabela a tabela. No Firebase, leia as Security Rules coleção por coleção, caçando if true e falta de request.auth.uid, e teste requisição não autenticada. O Promptbook cobre os dois; sinal sério vai pro Risk Review.
Perguntas frequentes
Qual é mais seguro por padrão?
Os dois começam permissivos o suficiente pra vazar se você não fechar a regra. Não existe "mais seguro por padrão" aqui; existe "regra fechada corretamente". O modelo é equivalente: RLS no Supabase, Security Rules no Firebase.
Preciso esconder a anon_key / apiKey?
Não, as duas são públicas por design e vivem no client. O que protege o dado é a regra (RLS ou Security Rules). Esconder a chave não adianta se a regra está aberta, e não é necessário se a regra está correta.
Quem faz a revisão na RET?
Gabriel Lima Ferreira, founder e lead pentester, com autorização e escopo fechado.