如何检查 HTTPD 目录执行?

如何检查 HTTPD 目录执行?

带有 HTTPD Apache 2.4 的 Fedora 29

默认情况下,对服务器目录系统的访问受 httpd.conf 中的此项保护:

<Directory />
    AllowOverride none
    Require all denied
</Directory>

...并根据每个目录使用进一步的<directory>规则进行覆盖;因此,我有如下所示的虚拟主机块,我想运行测试以确保<Directory "/">不允许访问 DocumentRoot 之外的内容。我该怎么做?

<VirtualHost insurgent.info:80>
    DocumentRoot "/var/httpd/insurgent"
    ServerName insurgent.info

<Directory "/"> 
    Require all granted
    Options Indexes FollowSymLinks IncludesNoExec
    AllowOverride None
    XBitHack Full
</Directory>

<Directory "/var/httpd/insurgent/.cgi-bin">
    AllowOverride None
    Options None
    Require all granted
</Directory>

<IfModule alias_module>
    ScriptAlias /cgi-bin/ "/var/httpd/insurgent/.cgi-bin/"
</IfModule>
</VirtualHost>

答案1

目录指向文件系统中的一个目录,因此在虚拟主机中指定

<Directory /var/httpd/insurgent>
Require all granted
#other directives 
</Directory>

允许访问您的文档根目录。

官方文档对此有非常具体的说明: http://httpd.apache.org/docs/2.4/mod/core.html#directory

指向 / 的条目应该只在服务器配置上下文中

<Directory />
    AllowOverride none
    Require all denied
</Directory>

并且确实需要禁止其他地方的访问,但不要在虚拟主机中使用它!

相关内容