Глава 20. Загрузка файлов
Практически любой современный сайт позволяет пользователям загружать изображения, документы или архивы. Неправильная реализация загрузки файлов — одна из самых распространённых причин взломов.
Массив $_FILES
После отправки формы PHP заполняет массив $_FILES с информацией о временном файле, размере и имени.
Проверка
Проверяйте размер, MIME-тип и расширение. Никогда не доверяйте имени файла пользователя.
Перемещение
Используйте move_uploaded_file() и сохраняйте файлы под новым случайным именем.
Безопасность
Не разрешайте загрузку PHP-файлов и храните пользовательские данные вне публичной директории, если это возможно.