我可以安全地删除代码点火器中每个目录中的索引.html文件吗?


Can I safely remove the index.html file in every directory within codeigniter?

我的codeingiter Web应用程序中目录"application"和"system"中的每个子目录都有一个index.html文件。在此HTML文件中,有一个看起来像标准错误消息的内容。它包含以下代码:

<html>
    <head>
        <title>403 Forbidden</title>
    </head>
    <body>
        <p>Directory access is forbidden.</p>
    </body>
</html>

我假设这些是创建的,以便如果有人尝试访问"应用程序"或"系统"中的目录,它不会列出所有文件,而是会显示错误。

这些似乎是多余的,因为我在每个目录中都添加了一个 .htaccess 以拒绝所有访问。这两个目录中的每个 PHP 文件也有第一行:

if ( ! defined('BASEPATH')) exit('No direct script access allowed');

这应该意味着根本没有人可以查看任何这些文件(因为我受到 .htaccess 的保护一次,一次受到 PHP 行的保护)。

因此,我的问题是 - 为了保持我的 Web 应用程序井井有条且整洁,我可以安全地删除这些索引.html文件吗?这会对我的代码点火器 Web 应用程序造成任何不良副作用吗?

提前致谢

是的,您可以删除它们。

但即使你有适当的权利,你也应该在那里拥有它们。 因为它们只是故意存在的,以防万一您忘记实现正确的目录浏览权限

只要

您设置了.htaccess文件,该文件不会重定向到您的index.html文件或与您的文件没有任何关系,您可以安全地(并且没有用保留)删除您的index.html。但你应该小心。 index.html可以帮助您.htaccess失败

一般来说,

您可以删除这些索引.html文件,但您需要确保在 Web 服务器配置中禁用目录索引。

对于 Apache Web 服务器,您可以在全局配置或 .htaccess 文件中使用 Options -Indexes,如下所示:

<Directory /wwwdata/ >
    #disable directory index
    Options -Indexes
    #other options ...
</Directory>

CodeIgniter 中的那些索引.html文件阻止(在任何情况下)目录列表,这可能会导致严重的安全流。

虽然我同意 .htaccess 和基本路径条件检查已经足够好了,但我并不认为在两个目录中有两个 html 文件真的会弄乱任何东西。在将东西放在网络上时,您永远无法足够小心,CodeIgniter 的人肯定会在添加它之前考虑过它。

我真的没有看到任何附加值删除它们,但如果这是你想做的,那就继续吧。

但我建议也保留索引.html。保留索引.html不会损害您的应用程序,但可以确保它提供某种保护。

如果您说禁止使用 .htaccess 访问目录,那么您可以安全地删除它们,让您的后顾之忧消失!

但是,如果 PHP 脚本出于某些原因使用该目录并将某些内容放入这些目录中,然后为用户提供链接,例如,它将无法正常工作,您将不得不删除 .htaccess 限制。

我只建议只留下一个空白索引.html当用户到达目录时,只会显示一个空白页面。

或者,您可以强制将用户重定向到带有 index.php 的主页,例如:

<?php
  header("Location: ../");
?>