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