Apache模块 mod_info

说明 生成Apache配置情况的Web页面
状态 扩展(E)
模块名 info_module
源文件 mod_info.c

概述

要配置mod_info请将下列内容加入httpd.conf文件。

      <Location /server-info>

 SetHandler server-info 
      </Location>

你可能希望在<Location>指令中使用mod_authz_host来限制对服务器配置信息的访问:

      <Location /server-info>

 SetHandler server-info

        Order deny,allow

        Deny from all

        Allow from yourcompany.com 
      </Location>

一旦配置完成,你的服务器信息就可以通过访问http://your.host.example.com/server-info得到。

安全问题

一旦mod_info被加载,它的处理能力就在所有配置文件中生效,包括.htaccess文件。这可能给网站带来安全问题。

特别的,该模块还会泄漏许多配置信息,比如:系统路径、用户名/密码、数据库名称等等。而且根据此模块的工作方式,无法对它产生的信息进行屏蔽。因此,应当仅仅在受控环境下使用该模块,并且始终保持警惕。

你可以使用mod_authz_host来限制对这些敏感信息的访问:

访问控制

      <Location /server-info>

 SetHandler server-info

        Order allow,deny

        # 允许本机自身访问

        Allow from 127.0.0.1

        # 还允许局域网内的另外一台机器访问

        Allow from 192.168.1.17 
      </Location>

选择哪些信息可以被显示

默认情况下显示的信息:所有启用的模块、每个模块的指令说明、每个模块的钩子、当前配置信息。

还可以通过在server-info后面加上请求字符串来查看特定的信息。比如 http://your.host.example.com/server-info?config 将显示所有配置指令。

?&lt;module-name&gt;

仅显示与该模块相关的信息

?config

仅显示所有配置指令,不按模块分类

?hooks

仅显示每个模块所属钩子(Hook)列表

?list

仅显示所有启用的模块列表

?server

仅显示基本的服务器信息

已知的局限

由于mod_info提供的信息是根据已经解析过配置树提供的,而不是原始的配置文件,因此有以下局限:

  • 立即执行而并不存储的指令不会被列出。包括:ServerRoot, LoadModule, LoadFile
  • 控制配置文件自身行为的指令不会被列出,包括:Include, <IfModule>, <IfDefine> 。但是通过Include包含进来的指令将会被列出。
  • 配置中的注释不会被列出。
  • .htaccess文件中的配置指令不会被列出。
  • 容器中的指令按原样列出,但是mod_info不会计算</Directory>容器中的行号。
  • 第三方模块(如mod_ssl)的指令有可能不会被列出。

AddModuleInfo 指令

说明 为server-info处理器显示的模块增加额外信息
语法 AddModuleInfo module-name string
作用域 server config, virtual host
状态 扩展(E)
模块 mod_info
兼容性 仅用于 Apache 1.3 及以上版本

本指令将string的内容作为module-name模块的额外信息以带HTML注解的方式显示。例如:

      AddModuleInfo mod_deflate.c 'See <a \

 href="http://www.apache.org/docs/2.2/mod/mod_deflate.html">\

        http://www.apache.org/docs/2.2/mod/mod_deflate.html</a>'