【问题标题】:How apache calls/invokes the appropriate handler/interpreter?apache 如何调用/调用适当的处理程序/解释器?
【发布时间】:2011-09-08 17:13:48
【问题描述】:

首先,很抱歉,由于我的知识不足,问题不清楚。

我很想知道 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 file upload: mime or extension based verification?) 中得知,如果某些用户上传的文件具有错误的 MIME 类型(即image/jpeg)但扩展名为.php,则该文件可以被执行(假设它具有执行权限) 和 EXIF 元数据中包含的恶意 php 代码可以做有害的事情。

【问题讨论】:

    标签: apache security


    【解决方案1】:

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

    但是,根据文件扩展名设置处理程序特别常见,因此 Apache 提供了AddHandler 指令作为这样做的快捷方式。

    更多详情,请查看the handler documentation

    附:值得一提的是,文件系统通常不存储 MIME 类型数据,因此 Apache 通常必须通过检查扩展名来猜测文件的 MIME 类型。

    【讨论】:

      猜你喜欢
      • 2020-08-16
      • 2023-03-17
      • 2020-02-10
      • 2020-08-05
      • 1970-01-01
      • 1970-01-01
      • 2023-02-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多