Какие сложности / проблемы следует учитывать при разрешении загрузки файлов ZIP? - PullRequest
2 голосов
/ 05 апреля 2011

Я разрешаю загружать файлы PDF на мой сайт (PHP).

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

Для тех из вас, кто предлагает функцию загрузки файла .zip на ваш (PHP) веб-сайт, с какими техническими, безопасными и другими проблемами вы столкнулись?

Ответы [ 3 ]

1 голос
/ 05 апреля 2011

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

Еще одна проблема, я думаю, upload_max_filesize установленный в php.ini, вы можете убедиться, что он может быть достаточно большим, чтобы соответствовать вашим целям, прежде чем начать кодирование.

редактировать: также читать ответ Сарнольда ;)

1 голос
/ 05 апреля 2011

Будьте осторожны при распаковке zip , вы можете потреблять гораздо больше ресурсов, чем ожидали.Возможно, было бы разумно ограничить ресурсы setrlimit(2) перед распаковкой.

Утилита unzip(1) имеет несколько встроенных функций безопасности;опция -^ командной строки отключает фильтрацию управляющих символов, поэтому убедитесь, что вы не трогаете это :), а опция -: командной строки допускает глупых путей, таких как ../../../../etc/passwd.Убедитесь, что вы используете версию не ниже 5.50, так что эти глупые пути запрещены по умолчанию.(И не используйте этот параметр командной строки. Я упоминаю эти параметры только для того, чтобы вам было легче найти документацию для них.:)

Если вы используете API, убедитесь, что у него есть параметры, предотвращающие оба видаглупых имен файлов.

0 голосов
/ 05 апреля 2011

AFAIK, php может довольно эффективно обрабатывать zip-файлы.Сложности / проблемы, о которых я могу думать, это при доступе к файлу, где нам нужно сначала извлечь zip, а затем получить нужный файл.По этой причине при извлечении zip-файла может потребоваться дополнительное время сервера, в зависимости от размера самого файла.

Где As Во время загрузки я не предполагаю каких-либо трудностей или проблем, особо выделенныхна zip типах.

...