Предоставление возможности загрузки / выгрузки файлов - это огромная банка червей.Помимо возможности атаковать ваш сервер, есть также вопросы о контрабанде данных.вредоносное ПО и интеллектуальная собственность.Но поскольку вы конкретно спрашиваете о первом ...
Отключение выполнения PHP таким способом обеспечивает только один уровень предотвращения.если этот слой по какой-то причине не работает, то ваша безопасность исчезла.Кроме того, это предотвращает выполнение содержимого только в том случае, если веб-сервер направлен непосредственно на URL-адрес файла, и не обеспечивает никакой защиты, если кто-то может обмануть существующий код php для включения содержимого.
Минимальныйподход будет заключаться в том, чтобы хранить содержимое вне каталогов, доступных по URL-адресам (т. е. вне корня документа и любых других сопоставленных каталогов).
Это не предотвращает уязвимость включения, но устраняет уязвимость прямой адресации.Весь доступ к контенту должен быть обеспечен PHP-скриптом.Но, с другой стороны, гораздо проще избежать OMGWTF, таких как:
Приложение ForceType / octet-stream
Отключение выполнения PHP ( php_flag engine off * ) - лучшее решение для отключения выполнения, чем изменение типа MIME.Использование такого типа MIME - это всегда плохая идея.
Альтернативный / дополнительный подход заключается в кодировании файлов , что предотвращает уязвимости включения кода.
Это такжехорошая идея назначить ваши собственные имена файлов артефактам в вашей файловой системе хоста .