23 de Janeiro de 2025
Entradas e APIs Mais Seguras
Como tratar entrada externa com menos ingenuidade e desenhar APIs que não aceitam dado demais por conveniencia.
Andrews Ribeiro
Founder & Engineer
2 min Intermediario Sistemas
O problema
Muita API fica vulneravel não por falta de login, mas porque aceita entrada externa demais sem critério.
Campo extra passa, string malformada segue, id inesperado entra no fluxo e a camada de serviço tenta resolver isso tarde demais.
Esse “depois a gente valida” e o tipo de atalho que abre porta para problema serio.
Modelo mental
Entrada externa nunca deve entrar no backend como verdade pronta.
Ela precisa passar por um filtro duro na borda:
- o formato e valido?
- esse campo existe no contrato?
- esse valor faz sentido neste contexto?
- este usuário pode mandar isso?
Segurança aqui e disciplina estrutural na fronteira da rede.
Quebrando o problema
Uma API mais segura faz isto:
- Valida schema assim que a request chega na rota.
- Remove campos que o fluxo não precisa.
- Normaliza string, data e email antes da lógica de negócio.
- Rejeita o request cedo quando algo não bate.
- Ainda checa permissao e regra de negócio antes de gravar ou executar efeito.
Isso reduz bastante a superficie para abuso e para estado inesperado.
Exemplo simples
Imagine um endpoint de atualização de perfil.
Se o controller aceita o JSON cru e faz merge cego no banco, qualquer campo extra pode vazar para o modelo:
role: "admin"billingStatus: "paid"internalConfig: {}
Uma versão mais segura aceita só o contrato mínimo:
namebioavatarUrl
O resto cai fora ou gera erro.
Erros comuns
- Confiar que o frontend sempre vai mandar o payload certo.
- Validar apenas tipo primitivo e ignorar regra de negócio.
- Deixar endpoint genérico demais para “flexibilidade futura”.
- Aceitar campo extra e fingir que isso não importa porque “a gente ignora”.
- Achar que autenticação sozinha torna o dado confiavel.
Como um senior pensa
Quem tem mais experiência trata payload externo como hostil até prova em contrario.
O critério costuma ser:
“Vamos validar o schema na borda e aceitar o menor contrato possível. Cada campo extra que entra aumenta o que o sistema precisa defender.”
O que o entrevistador quer ver
Em entrevista de backend ou segurança, isso mostra profundidade rápido.
- Você validar dado na borda, não la no fundo da regra de negócio.
- Você desenhar contrato mínimo e explícito.
- Você ligar segurança a design de API, não só a middleware de auth.
Uma resposta forte costuma soar assim:
“Eu validaria schema logo na entrada e aceitaria o menor contrato possível. Depois disso ainda verificaria regra de negócio e permissao, porque payload bem formatado não significa payload legitimo.”
API segura não tenta sobreviver a qualquer payload. Ela aceita pouco e deliberadamente.
Resumo rápido
O que vale manter na cabeça
- Entrada externa deve chegar ao backend como suspeita, não como verdade pronta.
- Contrato pequeno e validado cedo reduz muito a superficie de erro e abuso.
- Validar tipo não basta; ainda existe regra de negócio e permissao sobre o dado.
- API segura aceita menos coisas, mais explicitamente e mais cedo.
Checklist de pratica
Use isto ao responder
- Consigo explicar por que validação precisa acontecer na borda da API?
- Sei diferenciar schema valido de payload autorizado e semanticamente correto?
- Consigo dar exemplo de campo extra que vira problema serio?
- Sei responder em entrevista por que contrato mínimo melhora segurança?
Você concluiu este artigo
Compartilhar esta página
Copie o link manualmente no campo abaixo.