Потенциальные проблемы безопасности с PHP ZipArchive

Я хочу предоставить участникам возможность загружать содержимое с помощью zip-файла. После загрузки я хочу использовать класс PHP ZipArchive, чтобы распаковать содержимое zip-файла в каталог, а затем переместить файлы в нашу систему.

Я обеспокоен потенциальными рисками безопасности, и я не могу их найти документация на php.net. Первый (ну, единственный) риск, который приходит на ум, - это кто-то создает zip-файл с относительными путями, например "../../etc/passwd" (если они предполагают, что я распаковываю файл в / tmp / somedir).

Мне действительно сложно создать относительный путь в zip-файле, поэтому я не могу проверить, возможно ли это. Я также не могу найти способ извлечь содержимое zip-файла с помощью ZipArchive и заставить его игнорировать каталоги (распаковать все файлы, но не создавать структуру каталогов внутри zip).

Кто-нибудь может мне сказать возможен ли такой эксплойт и / или как игнорировать структуру каталогов в zip-файле с помощью ZipArchive?

9
задан mellowsoon 12 July 2011 в 15:47
поделиться