PHP: разрешить загрузку файлов .php для пользователей, как мне запретить их запуск? - PullRequest
3 голосов
/ 19 июня 2010

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

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

Как вы думаете, что является простым и безопасным решением для этого?Он просто загружает в подкаталог, например uploads/~foo/bar.html или что-то в этом роде, он выглядит хорошо, поэтому было бы неплохо, если бы он оставался в таком формате.

Ответы [ 2 ]

0 голосов
/ 19 июня 2010

Если, например, эти загруженные файлы находятся в каталоге «uploads» и его подкаталогах:

RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_URI} \.php [NC]
RewriteCond %{REQUEST_URI} \/uploads\/
RewriteRule ^(.*)$ index.php [F,L]
0 голосов
/ 19 июня 2010

Поместите это в uploads/.htaccess:

Приложение RemoveType / x-httpd-php .php

Это будет работать для всех подпапок. Также убедитесь, что вы не анализируете .htaccess в пользовательских папках. Это можно сделать с помощью AllowOverride None в конфигурации основного сервера или запретить загрузку файлов .htaccess.

...