Как обработать загрузку файлов .php без возможности их выполнения? - PullRequest
2 голосов
/ 11 января 2010

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

Есть предложения?

Спасибо.

Ответы [ 5 ]

6 голосов
/ 11 января 2010

Я рекомендую «отключить выполнение скрипта в каталоге загрузки». Это единственное полностью безопасное решение.

Просто добавьте это правило в файл .htaccess внутри каталога загрузки:

php_value engine off
1 голос
/ 11 января 2010

Пара решений:

  • Переименуйте их в .phps
  • Отключить выполнение PHP в каталоге загрузки в конфигурации вашего веб-сервера
1 голос
/ 11 января 2010

Вариант 1. Сохраните их с другим именем файла и сохраните исходное имя файла как часть метаданных, например, в таблице базы данных.

Вариант 2: отключить выполнение скрипта в каталоге загрузки.

Вариант 3: переименуйте их в .phps (допустимое расширение для отображения необработанного PHP)

0 голосов
/ 11 января 2010

Сделайте каталог загрузки отдельным, доступным только для записи и невидимым для Интернета (это предотвратит доступ к своему сценарию после загрузки).

Затем вы можете модерировать новые сценарии и делать все, что считаете нужным.

0 голосов
/ 11 января 2010

Только не выполняйте их, этого достаточно.

Убедитесь, что ваше приложение нигде не запущено или не содержит загруженных пользователем файлов (например, с помощью параметра GET для include файла без какой-либо обработки).

Также убедитесь, что загруженные файлы не доступны извне с расширением .php.

В обычном, правильно наполовину кодированном рабочем процессе выгруженные файлы .php не представляют угрозы безопасности, независимо от того, какой код они содержат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...