Recursos · 117

Arquivos ZIP e TAR: extrair com limites de caminho e recursos

Validar caminhos, ligações e dados expandidos antes de promover os ficheiros extraídos.

Atualizado · 2 min

O que este guia ajuda a alcançar

  • Escolher um destino isolado
  • Limitar o trabalho efetivo
  • Promover apenas resultados completos

Verificação rápida

  • Política de caminhos e pasta isolada.
  • Orçamentos explícitos e paragem por excesso real.
  • Matriz de rejeições e prova de promoção completa.

Método passo a passo

  1. 1

    Escolher um destino isolado

    Extraia para uma pasta nova não pública com permissões mínimas. Rejeite caminhos absolutos, subida de diretórios, ligações e ficheiros especiais desnecessários. Verifique destinos resolvidos e colisões segundo o sistema, incluindo maiúsculas. Um prefixo textual não prova confinamento.

    Política de caminhos e pasta isolada.

  2. 2

    Limitar o trabalho efetivo

    Defina limites por ficheiro e totais de bytes escritos, entradas, profundidade, tempo e recursos. Não dependa apenas do tamanho comprimido ou declarado. Rejeite arquivos aninhados desnecessários; se permitidos, partilhe um orçamento global. Atualize biblioteca e filtros.

    Orçamentos explícitos e paragem por excesso real.

  3. 3

    Promover apenas resultados completos

    Teste ../, caminho absoluto, ligação, duplicado e excesso de orçamento. Uma falha deixa o lote sem publicação e não substitui ficheiros existentes. Valide tipos e conteúdo antes da promoção; limpe a pasta verificando o destino.

    Matriz de rejeições e prova de promoção completa.

Caso de aceitação reproduzível

Exemplo fictício: estes dados não descrevem clientes nem resultados observados.

Ver dados do caso
{
    "compressed_mb": 2,
    "expanded_mb": 600,
    "aggregate_budget_mb": 100,
    "first_files_valid": true,
    "expected": "stop_on_actual_overrun_and_do_not_promote"
}

Decisão esperada

Exemplo fictício: 2 MB comprimidos produzem 600 MB com orçamento de 100 MB. Pare ao ultrapassar bytes escritos e mantenha o lote sem publicação, mesmo com primeiros ficheiros aparentemente válidos.

Python — tarfile extraction filters and further verification

O seu caderno de aceitação

Registe observações sobre os critérios deste guia. Um registo não é uma certificação.

O caderno não guarda automaticamente. Exporte antes de sair.

Indicadores de gestão

IndicadorO que medePrimeira ação
Bytes expandidos observadosSoma dos bytes efetivamente escritos no loteComparar com orçamento total, não ZIP
Lotes rejeitados sem publicaçãoLotes inválidos sem promoção / lotes inválidos testadosIncluir falhas durante extração

Erros comuns

    Perguntas frequentes

    Um arquivo pequeno ou filtro garante segurança?

    Não. Pode expandir muito. Acrescente limites de recursos, regras de caminhos e validação dos ficheiros extraídos.

    Referências oficiais

    As referências apoiam o método. Adapte as verificações ao seu contexto; elas não são uma certificação. Os títulos das referências originais e os documentos de origem podem estar em outro idioma.

    Referências consultadas em .