RRodrigo M. Reis
ConsultoriaMétodoRobôsMateriaisBlogSobre
Área do ClienteMaterial grátis
R

Rodrigo Munhoz Reis

Vibecoding com Engenharia. Construir com IA, rápido — mas com rigor de engenheiro.

ConsultoriaMétodoRobôsMateriaisBlogSobreÁrea do Cliente
LinkedInInstagram
© 2026 Rodrigo Munhoz Reis. Todos os direitos reservados.Política de Privacidade

Vibecoding

Como permitir upload de arquivo no seu app com segurança

Upload é a porta dos fundos favorita de invasor. Aprenda a deixar o usuário enviar arquivo sem abrir o seu app.

Rodrigo Munhoz Reis· 30 de julho de 2026· 3 min de leitura
Como permitir upload de arquivo no seu app com segurança

Resumo em 3 linhas

Deixar o usuário subir uma foto ou um PDF parece inofensivo. É uma das features mais perigosas quando feita sem cuidado. Este tutorial mostra como validar tipo, limitar tamanho e fechar o Storage antes de liberar upload no seu app.

Neste artigo

  • Por que upload é perigoso
  • Passo 1: defina o que é permitido antes de codar
  • Passo 2: peça o upload com as travas no prompt
  • Passo 3: valide no navegador (pra experiência)
  • Passo 4: feche o Storage nas regras (a segurança real)
  • Passo 5: teste tentando quebrar
  • O custo de não fazer
  • Fontes

Upload parece a feature mais boba do mundo. Um botão, escolhe o arquivo, envia.

É uma das mais perigosas.

Upload aberto é convite pra três problemas: arquivo malicioso, Storage lotado e conta estourada. Vou te mostrar como fechar cada porta.

Por que upload é perigoso

Quando você deixa alguém subir um arquivo, você está deixando um estranho gravar dados no seu servidor. Sem regras, ele pode:

Subir um arquivo executável disfarçado
Subir milhares de arquivos gigantes e estourar seu custo
Sobrescrever arquivos de outros usuários

A IA gera o botão de upload em segundos. Ela raramente gera as travas. Você coloca.

Passo 1: defina o que é permitido antes de codar

Responda três perguntas:

Quais tipos de arquivo? (só imagem? só PDF?)
Qual tamanho máximo? (2 MB? 10 MB?)
Quem pode subir? (qualquer visitante ou só logado?)

Sem essas três respostas, você não tem como blindar. Tem como só liberar.

Passo 2: peça o upload com as travas no prompt

Você é dev full-stack. Implemente upload de imagem para o Firebase Storage.
Aceite apenas arquivos JPG e PNG.
Rejeite arquivos maiores que 5 MB.
Só permita upload de usuário autenticado.
Mostre erro claro se o arquivo for inválido.

Repare: as regras estão no pedido. Se você pedir só "faça upload", vem o botão sem trava.

Passo 3: valide no navegador (pra experiência)

A validação no navegador é pra dar feedback rápido. O usuário escolhe um arquivo errado e vê o erro na hora, sem esperar o envio.

Verifique a extensão e o tamanho antes de enviar.
Mostre "só JPG ou PNG, até 5 MB" se estiver errado.

Mas atenção: isso é conforto, não segurança. Validação no navegador se burla com dois cliques. Ela não protege nada sozinha.

Passo 4: feche o Storage nas regras (a segurança real)

Aqui está a trava que importa. As regras do Firebase Storage decidem quem sobe o quê, e elas rodam no servidor. Ninguém burla.

allow write: if request.auth != null
  && request.resource.size < 5 * 1024 * 1024
  && request.resource.contentType.matches('image/.*');

Traduzindo: só sobe quem está logado, arquivo menor que 5 MB, e só se for imagem. Essa regra é a diferença entre um app e um problema.

Passo 5: teste tentando quebrar

Vire o invasor por cinco minutos:

Tente subir um PDF onde só devia entrar imagem. Foi barrado?
Tente subir um arquivo de 50 MB. Foi barrado?
Tente subir sem estar logado. Foi barrado?

Se qualquer um passou, sua regra tem furo. Conserte antes de subir.

O custo de não fazer

Storage aberto não é só risco de segurança. É risco financeiro. Alguém pode automatizar upload e encher seu bucket em uma noite. Você acorda com uma conta absurda.

Segundo a Veracode, código de IA tem 2,74 vezes mais falhas de segurança. Upload sem validação é uma delas, e das mais caras.

Upload seguro não é difícil. É só não pular a etapa das regras. Vibecoding com engenharia é lembrar que todo campo onde o usuário envia dado é uma porta. E porta boa tem fechadura.

A decisão é sua.

Fontes

Veracode, State of Software Security 2025.

Perguntas frequentes

Perguntas rápidas

+Qual o maior risco de um upload aberto?

Dois: alguém subir arquivo malicioso e alguém encher seu Storage de lixo, estourando seu custo. Ambos evitáveis com regras.

+Preciso validar o arquivo no navegador ou no servidor?

Nos dois. No navegador pra experiência, no servidor ou nas regras pra segurança. Validação só no navegador é fácil de burlar.

+Posso deixar qualquer tipo de arquivo?

Não. Aceite só os tipos que seu app usa de verdade. Uma foto de perfil não precisa aceitar arquivo executável.

Não perca o próximo

Receba os próximos posts no e-mail

Sem enrolação, sem hype. Tutoriais, análise de notícia e método de vibecoding com engenharia. Cancela quando quiser, é só responder pedindo.

Próximo passo

Quer aplicar isso com método?

Baixe os guias gratuitos de vibecoding com engenharia e libere os robôs de IA na Área do Cliente — prompts prontos para usar no ChatGPT, Claude ou Gemini.

Baixar guias grátisConhecer os robôs
RM

Sobre o autor

Rodrigo Munhoz Reis

Consultor de IA e Diretor de Tecnologia (CTO) e sócio de produtos 100% construídos em vibecoding — MeuCurso, DireitoHub e TreinadorOAB. Escreve sobre construir e usar IA com a velocidade da máquina e o rigor de engenheiro: vibecoding com engenharia.

LinkedInInstagramSobre →

Continue lendo

Vibecoding

Como não virar refém de uma ferramenta de IA

A ferramenta que você ama hoje pode dobrar de preço, mudar de dono ou fechar amanhã. Não construa em cima de uma só.

Vibecoding

O que fazer quando a IA te dá código que você não entende

A tentação é apertar aceitar e seguir. Não faça. Código que você não entende é código que você não mantém.

Vibecoding

Por que backup não é opcional

Existe quem faz backup e quem ainda não perdeu tudo. Você escolhe de qual lado ficar antes ou depois.

← Voltar ao blog