Arquitetura de validacao de upload

Projete um fluxo em camadas de validacao de upload que bloqueie entradas maliciosas sem prejudicar a experiencia do usuario.

Documento Imagem Video Audio Arquivo Codigo Seguranca

Comece com um modelo de gates em camadas

Trate a validacao de upload como uma sequencia de gates rapidos, nao como um unico sim/nao. O primeiro gate deve rejeitar violacoes obvias de politica (tamanho, lista de extensoes permitidas, taxa de requisicoes). O segundo deve confirmar o tipo tecnico pelo conteudo (magic bytes e probes de parser). O terceiro deve executar verificacoes especificas do workflow, como decode, extracao ou validacao de schema.

Esse modelo em camadas traz melhor observabilidade, porque cada rejeicao recebe um codigo de motivo claro. Tambem melhora a qualidade do produto: usuarios recebem mensagens acionaveis, e a engenharia consegue rastrear onde as falhas acontecem com mais frequencia.

  • Gate 1: verificacoes no nivel da requisicao (limites de tamanho, allowlist de extensoes, auth, rate limiting).
  • Gate 2: verificacoes no nivel do conteudo (sniffing MIME, verificacao de assinatura, sanidade do parser).
  • Gate 3: verificacoes de workflow (conversao, indexacao, thumbnails, scan AV, politica).

Defina contratos de erro deterministas

A validacao so escala quando cada falha tem um codigo legivel por maquina e determinista. Retorne IDs de erro de API estaveis para que frontend, telemetria e ferramentas de suporte possam analisar incidentes sem interpretar mensagens soltas.

{
  "error": "upload_validation_failed",
  "reason_code": "mime_signature_mismatch",
  "details": {"declared": "image/png", "detected": "application/zip"}
}

Meca e ajuste

Acompanhe taxas de rejeicao por codigo de motivo, tempo mediano em cada etapa de validacao e falsos positivos dos controles de conteudo. Ajuste limites com base em trafego real, nao em suposicoes. Para uploads criticos, implemente um caminho de quarentena em vez de rejeicao dura quando a confianca for baixa.

Ferramentas recomendadas

Inspetor MIME

Compare extensao e assinaturas para detectar incompatibilidades de tipo.

Abrir ferramenta

Classificador MIME em lote

Classifique muitos arquivos de uma vez e destaque riscos de incompatibilidade.

Abrir ferramenta

Gerador e verificador de checksum

Calcule SHA256 e verifique a integridade do arquivo com hashes esperados.

Abrir ferramenta