Extraia zip ou tar com segurança usando Python
Eu estou tentando extrair arquivos zip e tar enviados pelo usuário para um diretório. A documentação para o zipfileextrair tudo método (da mesma forma com o tarfileextrair tudo) afirma que é possível que os caminhos sejam absolutos ou contenham..
caminhos que saem do caminho de destino. Em vez disso, eu poderia usarextract
eu mesmo assim:
<code>some_path = '/destination/path' some_zip = '/some/file.zip' zipf = zipfile.ZipFile(some_zip, mode='r') for subfile in zipf.namelist(): zipf.extract(subfile, some_path) </code>
Isso é seguro? É possível que um arquivo no arquivo seja liberado fora dosome_path
nesse caso? Em caso afirmativo, de que maneira posso garantir que os arquivos nunca fiquem fora do diretório de destino?