Mit Python Zip oder Teer sicher extrahieren

Ich versuche, vom Benutzer eingereichte ZIP- und TAR-Dateien in ein Verzeichnis zu extrahieren. Die Dokumentation zu zipfile'salles extrahieren Methode (ähnlich wie bei tarfile'salles extrahieren) gibt an, dass es möglich ist, dass Pfade absolut sind oder enthalten.. Pfade, die außerhalb des Zielpfads liegen. Stattdessen könnte ich verwendenextract ich selbst, so:

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

Ist das sicher? Ist es möglich, dass eine Datei im Archiv außerhalb vonsome_path in diesem Fall? Wenn ja, wie kann ich sicherstellen, dass Dateien niemals außerhalb des Zielverzeichnisses abgelegt werden?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage