Как запретить запуск в определенном каталоге языков Php, Html и Javascript?


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

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

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

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

Спасибо

Author: Sripathi Krishnan, 2010-04-12

4 answers

По крайней мере, вы захотите поместить следующее в свой файл .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

 3
Author: sblom, 2017-05-23 12:23:47

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

AddType 'text/plain' .php .html

Или

ForceType 'text/plain'
#...
 3
Author: Ming-Tang, 2010-04-11 22:23:48

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

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

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

 3
Author: Anthony, 2010-04-11 22:25:50

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

 0
Author: BalusC, 2010-04-11 22:25:36