Безопасность загрузки файлов - ограничение выполнения chmod не работает - PullRequest
0 голосов
/ 03 февраля 2011

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

Как видно из Википедии:

chmod -R a-x + X каталог
удалить разрешение на выполнение для всех файлов в дереве каталогов,с учетом возможности просмотра каталогов.

Но после успешного применения этого для загрузки в папку всех вложенных скриптов php, perl и python, которые я поместил туда для целей тестирования (и я подозреваю, что все остальные типыисполняемые файлы) выполняются, когда я печатаю их адреса в браузере.

Почему это происходит и что я могу сделать, чтобы это исправить?

1 Ответ

2 голосов
/ 03 февраля 2011

Интерпретаторы perl, php и python с удовольствием выполнят переданные им входные файлы, независимо от того, включен бит разрешения на выполнение для их входных файлов или нет.(С другой стороны, если в файле есть строка shebang, указывающая, какой интерпретатор использовать, разрешение на выполнение будет соблюдаться. Но, вероятно, это не относится к вашей ситуации.)

Вам придется обратитьсяЭта проблема заключается в настройке вашего веб-сервера (ограничивая каталоги, которые он считает исполняемыми), а не на уровне файловой системы.

Если вы используете Apache, вы, вероятно, захотите взглянуть на директиву ScriptAlias, либов глобальной конфигурации или локальных файлах .htaccess , как описано здесь .

...