Как предотвратить запуск определенных языков Php, Html и Javascript? - PullRequest
9 голосов
/ 12 апреля 2010

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

Вкратце, если я загружу evil.php в этот каталог и попытаюсь получить к нему доступ, я увижу только простой текстовый источник, html или php не выполняются. (но я все еще хочу, чтобы изображения выглядели нормально)

Я знаю, что могу сделать это с помощью header("content-type:text/plain");, но это не поможет, потому что я хочу, чтобы сервер автоматически устанавливал content-type:text/plain для каждой вещи, выводимой из каталога загрузки, кроме изображений.

Примечание: я использую php 5.3.2 / Cent OS и последнюю версию cPanel.

Спасибо

Ответы [ 4 ]

3 голосов
/ 12 апреля 2010

Выполните в Google поиск по запросу ", отключите выполнение скрипта для каталога ", чтобы получить доступ к ряду параметров. Это мой любимый:

AddType text/plain .html .htm .shtml .php .php3 .phtml .phtm .pl .py .cgi .js

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

3 голосов
/ 12 апреля 2010

Поместите .htaccess в каталог загрузки.

AddType 'text/plain' .php .html

или

ForceType 'text/plain'
#...
3 голосов
/ 12 апреля 2010

По крайней мере, вы захотите добавить в файл .htaccess следующее для каталога загрузки:

Options -Indexes
Options -ExecCGI
AddHandler cgi-script .php .php3 .php4 .phtml .pl .py .jsp .asp .htm .shtml .sh .cgi

Проблема с файлом .htaccess заключается в том, что если ваша загрузка не блокирует загрузку, ваш .htaccess может быть перезаписан. Альтернативное решение заключается в использовании директивы Apache (если вы используете Apache), показанной здесь: Отключить PHP в каталоге (включая все подкаталоги) с помощью .htaccess

0 голосов
/ 12 апреля 2010

Поскольку вы говорите о загрузчике изображений , вы не хотите отображать изображения как plain/text. Как бы вы отделили изображения от вредоносных файлов? Во время этой задачи просто заблокируйте сохранение определенного файла.

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