Pipeline seguro de upload em Flask
Arquitetura de referencia para construir caminhos seguros de ingestao de arquivos em servicos Flask.
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
Inspetor MIME
Compare extensao e assinaturas para detectar incompatibilidades de tipo.
Abrir ferramentaClassificador MIME em lote
Classifique muitos arquivos de uma vez e destaque riscos de incompatibilidade.
Abrir ferramentaGerador e verificador de checksum
Calcule SHA256 e verifique a integridade do arquivo com hashes esperados.
Abrir ferramenta