Как apache вызывает / вызывает соответствующий обработчик / интерпретатор? - PullRequest
1 голос
/ 08 сентября 2011

Прежде всего, извините, если вопрос неясен из-за моих плохих знаний.

Мне интересно узнать , как apache вызывает соответствующий движок / инициатор для обслуживаниязапрос .Предположим, пользователь запрашивает http://somesite.com/someurl.php - теперь, как apache определяет, что ему нужно запустить интерпретатор PHP?Apache определяет это на основании расширения файла / MIME-типа или чего-то еще?

Что я знаю: я могу настроить apache для вызова определенных интерпретаторов на основе расширения файла, например:

AddHandler cgi-script .cgi .py
# Tells apache to treat .cgi & .py files to treat as cgi scripts

Почему меня это беспокоит?Недавно я узнал из своего вопроса ( Загрузка файла PHP: проверка на основе mime или расширения? ), что если какой-либо пользователь загружает файл с неправильным типом MIME (например, image/jpeg), но с расширением .php файл может быть запущен (при условии, что у него есть разрешение на выполнение), а вредоносный php-код, включенный в метаданные EXIF, может совершать вредоносные действия.

1 Ответ

1 голос
/ 08 сентября 2011

Это полностью зависит от того, как настроен сервер.По умолчанию Apache всегда использует обработчик по умолчанию, который просто обслуживает содержимое файла.Однако вы можете изменить это, используя директиву SetHandler.Эта директива может быть размещена буквально в любом месте конфигурации, включая блоки <Files> или <Directory> или <Location>, что позволяет устанавливать обработчик на основе пути файловой системы, префикса URL-адреса или почти любой другой переменной, к которой Apache может обращаться.

Особенно обычно устанавливает обработчик на основе расширения имени файла, поэтому Apache предоставляет директиву AddHandler в качестве ярлыка для этого.

Для получения более подробной информации посмотрите документацию обработчика .

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

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