Ich versuche, gezippte Ordner mit dem hier gefundenen Code zu extrahieren.Python zipfile.extract() extrahiert nicht alle Dateien
def unzip(source_filename, dest_dir):
with zipfile.ZipFile(source_filename) as zf:
for member in zf.infolist():
words = member.filename.split('/')
path = dest_dir
for word in words[:-1]:
drive, word = os.path.splitdrive(word)
head, word = os.path.split(word)
if word in (os.curdir, os.pardir, ''): continue
path = os.path.join(path, word)
zf.extract(member, path)
Aber wenn man versucht, zum Beispiel zu extrahieren, wordpress.zip mit Verzeichnisstruktur
Wordpress/
-wp-content/
--- somefile.php
-wp-config.php
-index.php
Ich bekomme nur die Dateien im Ordner unter Stammordner oder Wordpress/in diesem Fall. Also bekomme ich wordpress/wp-content/somefile.php, aber nicht die Dateien im WordPress/Ordner selbst.
Dies funktioniert, aber ich verliere Schutzweg Traversal. Vielen Dank. –
Es scheint, als ob der Schutz in 2.7.4 und höher existiert. –