Этот сценарий может быть эвфемистически описан как сценарий удаленного администрирования.
Вы всегда должны использовать белый, а не черный список.Вместо «перечисления ошибок» составьте список разрешенных типов файлов и отклоните все остальное.
Кроме того, все загруженные файлы должны быть помещены в каталог, в котором не работает обработчик PHP, или любые другие обработчики сценариев ввсе (проверьте, например, что другие системы управления контентом, написанные на PHP, делают в .htaccess
для своих каталогов загрузки).
Также рекомендуется поместить загруженные файлы в отдельный поддомен, который не имеетлюбой доступ к файлам cookie основного домена, чтобы избежать атак, которые пытаются запустить код JavaScript в том же источнике, что и основной сайт (для этого недостаточно белого списка типов содержимого, поскольку известно, что некоторые браузеры угадывают тип содержимого иобрабатывать не HTML-файлы как HTML).