Pular para o conteúdo

Segurança, em linguagem simples

Textos curtos sobre o que realmente dá errado em apps feitos no impulso, e o que fazer a respeito.

Noções de segurança

New row violates row-level security policy no Supabase. E agora?

"New row violates row-level security policy" significa que o Supabase recusou uma escrita. O conserto rápido reabre a tabela para qualquer um.

Noções de segurança

Um curinga CORS é um risco de segurança? Quase nunca.

Um curinga CORS é um risco de segurança? Em geral é o padrão do seu builder e não entrega nada que o seu servidor já não desse a qualquer um que pedisse.

Backups

Branching do Supabase não é backup. Ele só anda para a frente.

Por que o branching do Supabase não é backup: um branch começa sem os seus dados e um merge só leva o esquema. Para que ele serve e o que usar no lugar.

Backups

Como restaurar um backup do Supabase, e o que quebra depois

Como restaurar um backup do Supabase pelo painel ou por um arquivo de dump, o que a restauração substitui e por que o seu app pode continuar quebrado no fim.

Noções de segurança

Seu bucket do Supabase Storage é público. Isso é um problema?

Um bucket público do Supabase Storage significa que quem tem a URL de um arquivo pode abri-lo. Não significa que alguém possa listar o que está lá dentro.

Noções de segurança

Uma chave de API do Google no frontend é um problema?

Uma chave de API do Google exposta no seu frontend é a chave que nosso scanner mais encontra, e quase sempre está tudo bem. Um ajuste gratuito decide isso.

Backups

Um agente de IA apagou meus dados do Supabase. O que eu recupero?

Um agente de IA apagou dados do seu banco. O que você recupera já estava decidido antes de ele rodar, e os próximos minutos decidem o resto.

Noções de segurança

Qualquer um consegue ler seu banco Supabase? Testamos 3.680 apps

Qualquer um consegue ler seu banco de dados Supabase sem fazer login? Escaneamos 30.998 apps no ar criadas com builders de IA e medimos quantas dizem que sim.

Noções de segurança

Source maps expostos: seu app está publicando o código original

Um source map exposto deixa qualquer um ler o código original do seu app, comentários incluídos. A verificação de 30 segundos e o que importa de verdade.

Noções de segurança

As novas chaves de API do Supabase: qual vai no seu app?

O Supabase trocou anon e service_role por chaves publicáveis e secretas. Qual delas pertence ao seu app e qual nunca deve estar lá?

Backups

O Supabase faz backup do meu banco de dados? Depende do plano.

O Supabase faz backup do seu banco de dados? Todo dia nos planos pagos, e nada no gratuito. Como descobrir o que você tem e o que essa cópia não cobre.

Noções de segurança

O Supabase Row Level Security está ligado. A tabela continua pública.

Ligar o Supabase Row Level Security não protege uma tabela. Quem protege são as políticas, e a que consertou o seu app pode deixar qualquer um entrar.

Backups

O histórico de versões não é backup. Ele não desfaz um delete.

Lovable e Bolt guardam um histórico de versões do seu código. Seu banco de dados é um serviço à parte, e voltar atrás não traz os seus dados de volta.

Backups

Três formas de fazer backup de um banco Supabase, e o que falta

O painel, o pg_dump e um serviço gerenciado. O que cada um salva de verdade, o que deixa de fora sem avisar e qual sobrevive a perder a conta.

Noções de segurança

Quais chaves de API são seguras no navegador e quais não são

Sua chave anon do Supabase foi feita para ser pública. Sua chave service_role não, e ela ignora todas as regras que você criar. Como diferenciar as duas.

Tudo aqui é escrito por um especialista em segurança, e é dirigido a quem apertou publicar.

Vlad Tkachenko