Engineering guide

Pipeline seguro de upload em Flask

Arquitetura de referencia para construir caminhos seguros de ingestao de arquivos em servicos Flask.

Seguranca Codigo Documento Imagem Arquivo

Separe ingestao de processamento

O handler Flask deve fazer o minimo de trabalho sincrono: autenticar, aplicar limites grossos, persistir o arquivo em object storage ou quarentena e enfileirar os jobs de processamento. Parsing pesado e conversoes devem ficar em workers, nao em threads de requisicao.

  • Sincrono: auth, verificacoes de tamanho, escrita temporaria, enfileiramento do job.
  • Assincrono: antivirus, transcodificacao de midia, OCR, extracao de metadados, indexacao.

Endureca os limites de armazenamento e execucao

Nunca confie em nomes de arquivo para caminhos de filesystem. Use IDs de objeto gerados e caminhos imutaveis de armazenamento. Mantenha workers em containers restritos, com dependencias somente leitura e acesso minimo de rede. Aplique limites de descompressao e de recursao para arquivos compactados.

Exponha uma maquina de estados clara para clientes

Uma maquina de estados visivel para uploads reduz carga de suporte e permite que clientes implementem retries e fallbacks corretamente. Isso tambem melhora a auditabilidade em revisoes de compliance.

accepted -> queued -> scanning -> transformed -> ready
                       \-> rejected(reason_code)
Ferramentas recomendadas

Keep the supporting tools one step away.

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