Безопасное извлечение zip или tar с помощью Python

Я пытаюсь извлечь отправленные пользователем файлы zip и tar в каталог. Документация для zipfile'овизвлечь все метод (аналогично tarfile'ам)извлечь все) утверждает, что пути могут быть абсолютными или содержать.. пути, которые выходят за пределы пути назначения. Вместо этого я мог бы использоватьextract Я, вот так:

<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>

Это безопасно? Возможно ли, чтобы файл в архиве оказался за пределамиsome_path в этом случае? Если да, то каким образом я могу гарантировать, что файлы никогда не попадут за пределы каталога назначения?

Ответы на вопрос(4)

Ваш ответ на вопрос