apache如何调用适当的处理程序/解释器?

apache如何调用适当的处理程序/解释器?,apache,security,Apache,Security,首先,如果由于我知识贫乏,问题不清楚,请道歉 我很想知道apache如何调用适当的引擎/调用程序来服务请求。假设,用户请求一个http://somesite.com/someurl.php-现在apache如何确定需要启动PHP解释器?apache是否根据文件扩展名/MIME类型或其他任何内容来确定 我所知道的是:我可以配置apache以根据文件扩展名调用某些解释器,方法如下: AddHandler cgi-script .cgi .py # Tells apache to treat .cgi

首先,如果由于我知识贫乏,问题不清楚,请道歉

我很想知道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

我为什么担心它?最近,我从我的问题()中了解到,如果某个用户上载的文件的MIME类型错误(即
image/jpeg
),但扩展名为
.php
,则可以执行该文件(假设该文件具有执行权限)EXIF元数据中包含的恶意php代码可能会产生有害影响。

这完全取决于服务器的配置方式。默认情况下,Apache始终使用默认的处理程序,该处理程序仅为文件内容提供服务。但是,您可以使用
SetHandler
指令更改这一点。此指令可以放在配置中的任何位置,包括
块,从而可以根据文件系统路径、URL前缀或Apache可以访问的几乎任何其他变量设置处理程序

但是,基于文件扩展名设置处理程序尤其常见,因此Apache提供了
AddHandler
指令作为执行此操作的快捷方式

有关更多详细信息,请查看


另外,文件系统通常不存储MIME类型数据,因此Apache通常必须通过检查扩展名来猜测文件的MIME类型。

这完全取决于服务器的配置方式。默认情况下,Apache始终使用默认的处理程序,该处理程序仅为文件内容提供服务。但是,您可以使用
SetHandler
指令更改这一点。此指令可以放在配置中的任何位置,包括
块,从而可以根据文件系统路径、URL前缀或Apache可以访问的几乎任何其他变量设置处理程序

但是,基于文件扩展名设置处理程序尤其常见,因此Apache提供了
AddHandler
指令作为执行此操作的快捷方式

有关更多详细信息,请查看

另外,文件系统通常不存储MIME类型的数据,因此Apache通常必须通过检查扩展名来猜测文件的MIME类型