在站点的每个文件夹中放置index.php(或.html)文件,这是一种良好的安全实践吗?

在站点的每个文件夹中放置index.php(或.html)文件,这是一种良好的安全实践吗?,php,security,webserver,Php,Security,Webserver,我已经听过很多次了:“在web服务器的每个文件夹上创建index.php,以确保用户不会看到文件夹中的文件列表” 这是真的吗?我需要一些安全方面的好做法。我认为这是一个好做法。它可以让用户不必深入研究并弄清楚整个目录结构——因此,如果他们在寻找漏洞,他们的工作会更加困难。我认为这是一个很好的做法。它可以防止用户深入了解并找出整个目录结构-因此,如果他们正在查找漏洞,他们的工作会更加困难。您可以这样做,但您可以像这样用.htaccess简单地阻止它 使用.htaccess阻止目录列表 选项-索引您

我已经听过很多次了:“在web服务器的每个文件夹上创建index.php,以确保用户不会看到文件夹中的文件列表”


这是真的吗?我需要一些安全方面的好做法。

我认为这是一个好做法。它可以让用户不必深入研究并弄清楚整个目录结构——因此,如果他们在寻找漏洞,他们的工作会更加困难。

我认为这是一个很好的做法。它可以防止用户深入了解并找出整个目录结构-因此,如果他们正在查找漏洞,他们的工作会更加困难。

您可以这样做,但您可以像这样用
.htaccess
简单地阻止它

使用.htaccess阻止目录列表
选项-索引

您可以这样做,但您可以像这样用
.htaccess
简单地阻止它

使用.htaccess阻止目录列表
选项-索引

简短回答:否

长回答:是的

拥有默认文档可能确实会阻止输出目录列表,但是:

  • 您可以通过其他方式阻止目录列表(.htaccess,服务器配置)
  • 如果他们猜到文件名,仍然可以找到文件
  • 您可以将所有文件放在文档根目录之外,并且只有一个脚本路由所有URL。因此,没有什么可以列出
因此,虽然您是对的,但很容易忘记一个目录,以及创建所有这些文件的大量工作。而且它只保护您不被列出,并且只有index.html确实是默认文档名时(同样是:服务器配置)。它不会阻止对脚本的任何直接访问,因此请使用更合适的安全性。

简短回答:否

长回答:是的

拥有默认文档可能确实会阻止输出目录列表,但是:

  • 您可以通过其他方式阻止目录列表(.htaccess,服务器配置)
  • 如果他们猜到文件名,仍然可以找到文件
  • 您可以将所有文件放在文档根目录之外,并且只有一个脚本路由所有URL。因此,没有什么可以列出

因此,虽然您是对的,但很容易忘记一个目录,以及创建所有这些文件的大量工作。而且它只保护您不被列出,并且只有index.html确实是默认文档名时(同样是:服务器配置)。它不会阻止对脚本的任何直接访问,因此请使用更合适的安全性。

从服务器配置文件中禁用目录列表不是更好的解决方案吗?你的想法听起来像是一种恶作剧

从服务器配置文件中禁用目录列表不是更好的解决方案吗?你的想法听起来像是一种恶作剧

您可以通过在公用html文件夹的.htaccess文件中添加以下行来禁用目录列表,而不是将索引文件放在每个文件夹中:

Options -Indexes 

您可以通过在公用html文件夹的.htaccess文件中添加以下行来禁用目录列表,而不是将索引文件放在每个文件夹中:

Options -Indexes 

在Apache HTTPd.htaccess中使用:

Options -Indexes
<configuration>
    <system.webServer>
        <directoryBrowse enabled="false" /><!-- THIS -->
    </system.webServer>
</configuration>
并在Microsoft IIS web.config中使用:

Options -Indexes
<configuration>
    <system.webServer>
        <directoryBrowse enabled="false" /><!-- THIS -->
    </system.webServer>
</configuration>

问候。每个Web服务器都有自己的方式,但避免在文件夹中使用index.html。
为此使用Web服务器功能更安全、更高效。

在Apache HTTPd.htaccess中使用:

Options -Indexes
<configuration>
    <system.webServer>
        <directoryBrowse enabled="false" /><!-- THIS -->
    </system.webServer>
</configuration>
并在Microsoft IIS web.config中使用:

Options -Indexes
<configuration>
    <system.webServer>
        <directoryBrowse enabled="false" /><!-- THIS -->
    </system.webServer>
</configuration>

问候。每个Web服务器都有自己的方式,但避免在文件夹中使用index.html。
为此使用Web服务器功能更安全、更高效。

您可以使用.htaccess文件或Apache配置阻止目录列表。并非所有站点都启用或安装了PHP
index.html
是更好的选择。您可以使用.htaccess文件或Apache配置阻止目录列表。并非所有站点都启用或安装了PHP
index.html
是更好的选择。