如何禁用 Apache 中的目录列表

2023-10-26

Apache 是最流行的开源 Web 服务器之一,全球许多网站都在使用它。它的功能之一是能够在不存在索引文件时列出目录及其内容。此功能虽然对某些用途很方便,但可能会向公众公开有关网站结构或内容的敏感信息。在本文中,我们将引导您了解如何禁用 Apache 中的目录列表以增强网站的安全性。

什么是目录列表?

在我们深入研究禁用目录列表之前,了解它是什么至关重要。目录列表是一项功能,允许用户在目录中不存在索引文件(如index.html 或index.php)时查看该目录的内容。当用户访问此类目录时,他们会看到其中包含的文件和子目录的列表。

虽然这在某些情况下很有用,但也可能是一个安全问题。如果启用该功能,任何人都可以查看您目录的内容并可能访问敏感文件或信息。因此,禁用目录列表是强化 Apache 服务器安全性的重要一步。

如何禁用目录列表

以下是在 Apache 中禁用目录列表的分步指南:

第1步:访问Apache配置文件

首先,您需要访问服务器上的 Apache 配置文件。该文件的位置取决于您的服务器设置。最常见的位置是‘/etc/httpd/conf/httpd.conf’对于 Red Hat/Fedora/CentOS 发行版,以及‘/etc/apache2/apache2.conf’适用于 Debian/Ubuntu 发行版。

您可以使用命令行文本编辑器(例如nano或vim)打开配置文件:

sudo nano /etc/apache2/apache2.conf 

或者对于基于 Red Hat 的系统:

sudo nano /etc/httpd/conf/httpd.conf 

第2步:修改目录配置

寻找配置文件中的指令,看起来像这样:

1
2
3
4
5
<目录 /var/www/>
选项 Indexes 关注符号链接
允许覆盖 None
要求 all granted
</目录>

In the `选项`线, 的‘索引’值允许服务器生成目录列表。要禁用目录列表,您需要删除‘索引’或将其替换为‘-索引’.

修改后的指令应如下所示:

1
2
3
4
5
<目录 /var/www/>
选项 关注符号链接
允许覆盖 None
要求 all granted
</目录>

Or this:

1
2
3
4
5
<目录 /var/www/>
选项 -Indexes 关注符号链接
允许覆盖 None
要求 all granted
</目录>

步骤 3:保存并关闭配置文件

进行更改后,保存文件并退出。如果您使用的是 nano,则可以通过按CTRL+X, then Y, 进而ENTER.

第 4 步:重新启动 Apache 服务器

为了使更改生效,您需要重新启动 Apache 服务器。您可以使用以下命令来执行此操作:

  • 在 Ubuntu/Debian 上:
    sudo systemctl restart apache2 
    
  • 在 CentOS/Red Hat 上:
    sudo systemctl restart httpd 
    

第 5 步:测试您的更改

现在您应该测试您的更改以确保目录列表已成功禁用。导航到网站上没有索引文件的目录。您不应再看到文件列表,而是看到 HTTP 403 Forbidden 错误,这意味着对资源的访问被拒绝。

结论

目录列表可能是一个有用的功能,但它通常带来的风险多于好处。在 Apache 服务器上禁用此功能有助于保护敏感文件和信息,减少网站的潜在安全漏洞。按照本文概述的步骤,您应该能够轻松禁用 Apache 服务器上的目录列表。请始终记住确保您的 Web 服务器的安全设置经过适当配置,以满足您的特定用例和需求。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何禁用 Apache 中的目录列表 的相关文章

  • 为什么 Xampp 控制面板在启动时显示错误访问被拒绝 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我的 Xampp 控制面板遇到问题 当我尝试启动它时 它会弹出一条错误消息 错误 无法创建文件 C xampp xampp control
  • 如何在 PHP 中检查不完整的 POST 请求

    当连接速度较慢的远程 Web 客户端无法发送完整的 POST 请求时 我遇到了问题multipart form data内容 但 PHP 仍然使用部分接收到的数据来填充 POST大批 结果一个值 POST数组可能不完整 并且可能会丢失更多值
  • .htaccess 中的“hash”url 重写

    我想重写http example com articles html first article with http example com articles first article 可以重写吗 我尝试使用以下但对我不起作用 Rewri
  • java.lang.AbstractMethodError: javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)V

    我有一个应用程序 可以使用它创建 Excel 文件apache POI 3 17我收到此错误消息apache POI当我运行应用程序时记录Tomcat 这是什么意思 我该如何解决 我最终将其添加到 eclipse ini 文件中 Djava
  • 将子域重定向到 CakePHP 操作

    背景 我有一个 CakePHP 应用程序 位于 m 我想写一个根级别的 htaccess文件 它将重定向网站的 子域 作为操作的参数 例如 我想编写一个重写规则 这将导致像这样的重定向 http mysite myserver com ht
  • 仅当未找到文件时才重定向请求?

    我希望有一种方法可以使用 mod rewrite 和 Apache 来做到这一点 但也许还有另一种方法可以考虑 在我的网站上 我为客户的网站重新设计版本设置了目录 如果网络根目录是 home blah www 客户端目录将是 home bl
  • Tomcat 托管具有多个 SSL 证书的多个虚拟主机

    例如 我有一台使用 Tomcat 7 托管多个网站的服务器 a abc com b abc com c def com d def com 使用tomcat的虚拟主机功能 因此它们各自可能属于不同的webapps文件夹 我们现在正在尝试为每
  • 为什么有人将(Apache mod_expires 参数)ExpiresByType 设置为“访问加 0 秒”?

    在审查答案时这个帖子 https stackoverflow com questions 9933012 how to use mod headers and mod expires to cache 我不明白为什么这里使用 0 秒作为最佳
  • PHP 强制 Apache 错误

    感谢这个论坛 我了解到 PHP header 函数实际上并不将 header 发送到 Apache 服务器 而只发送到客户端 我想要做的是生成错误 500 并让 Apache 显示其相应的页面 有办法强制吗 提前致谢 还有 Allez le
  • 使用 dockerfile 在 docker 中安装 mongodb 驱动

    我有一个 mongodb docker 容器 我需要另一个安装了 php 和 apache 的 docker 容器 我想从这个容器运行一个 php 脚本并将一些数据发送到 mongodb 容器以将数据保存在 mongodb 数据库中 所以我
  • htaccess重写和auth冲突

    我有 2 个目录 每个目录都有一个 htaccess 文件 html htaccess 该文件进行了重写 将几乎所有内容发送到 url php RewriteCond REQUEST URI exported php gif jpe g p
  • if 不是 localhost 语句 htaccess

    我目前强迫访问者通过 https 访问我的所有网站 主要是 Wordpress 我使用以下代码 RewriteEngine On RewriteCond HTTPS on RewriteRule https SERVER NAME REQU
  • 我在 apache 中使用乘客 for Rails 时收到 403 错误

    我已经安装了所需的工具 并遵循了几个教程 试图让乘客做出回应 我可以访问公共文件夹 public 500 html 或 422 hml 中的静态文件 昨天我通过虚拟主机进入 发现一些乘客错误 但一段时间后 托管重新启动了服务 从那时起我就无
  • Apache:重定向用户,但保持相同的路径?

    我希望能够将用户重定向到不同的 TLD 但保持相同的路径 例如 如果用户访问 example com cars 10 使用 apache 如何将用户重定向到类似以下内容 my new site com cars 10 如果您的服务器启用了
  • 如何使用 htaccess 重定向 html 扩展?

    目前 这两个链接显示同一页面 http www example com podcast episode html http www example com podcast episode html http www example com
  • 使用 .htaccess 重定向到动态相对路径?

    是否可以使 htaccess 理解 动态相对路径并正确重定向到它们 我的设置如下 http domain com htroot aaa xyz http domain com htroot bbb xyz http domain com h
  • Apache mod_rewrite 将双斜杠转换为单斜杠

    我有一个像这样的网址 http example com img php url http example2 com path to image name jpg 所以我通过这个问题创建了一条规则Apache mod rewrite 复杂 U
  • htaccess 重写 url 删除子目录

    我正在尝试重写 http www example com directory folder to http www example com directory htaccess 文件位于directory 这是我的 htaccess 文件
  • Apache 虚拟主机始终重定向到 /dashboard

    我遇到的问题似乎是一个常见问题 但我找到的任何解决方案似乎都不适合我的情况 我正在尝试设置一个虚拟主机 以便我可以通过 mytestdomain local 访问我的 Laravel 安装的公共文件 但是当我在 google chrome
  • PHP 致命错误:未找到“MongoClient”类

    我有一个使用 Apache 的网站 代码如下 当我尝试访问它时 我在 error log 中收到错误 PHP Fatal Error Class MongoClient not found 以下是可能错误的设置 但我认为没有错误 php i

随机推荐

  • 如何在 Ubuntu 18.04 上部署 Odoo 12

    Odoo 是世界上最受欢迎的一体化商业软件 它提供一系列业务应用程序 包括 CRM 网站 电子商务 计费 会计 制造 仓库 项目管理 库存等等 所有这些都无缝集成 Odoo可以通过多种不同的方式安装 安装 Odoo 最简单 最快的方法是使用
  • 如何从命令行管理 MySQL 数据库和用户

    MySQL 是最流行的开源关系数据库管理系统 MySQL服务器允许我们创建大量的用户和数据库 并授予适当的权限 以便用户可以访问和管理数据库 本教程介绍如何使用命令行创建和管理 MySQL 或 MariaDB 数据库和用户 在你开始之前 在
  • 如何在 CentOS 7 上安装和配置 Redis

    Redis 是一个开源的内存数据结构存储 它可以用作数据库 缓存和消息代理 并支持各种数据结构 如字符串 哈希 列表 集合等 Redis 通过 Redis Sentinel 提供高可用性 包括监控 通知 自动故障转移 它还通过 Redis
  • 列出(显示)MySQL 数据库中的表

    管理时MySQL对于数据库服务器 您将执行的最常见的任务之一就是熟悉环境 这包括列出数据库驻留在服务器上 显示数据库表 或获取有关的信息用户帐户及其权限 本文介绍如何通过命令行列出 MySQL 或 MariaDB 数据库中的表 显示 MyS
  • 野外仍发现心脏出血:您知道自己可能很脆弱吗?

    自 Heartbleed 首次被发现以来已经六年了 OpenSSL 漏洞仍然可以在互联网上被发现和利用 事实上 19 的全球攻击由于大量未修补的面向公众的服务器 我们针对 OpenSSL Heartbleed 漏洞进行了攻击 无论是由于扫描
  • 如何在 Ubuntu 22.04 上安装 Node.js 和 npm

    Node js 是一个基于 Chrome JavaScript 构建的跨平台 开源 JavaScript 运行时环境 旨在在 Web 浏览器之外执行 JavaScript 代码 它通常用于构建快速且可扩展的服务器端和网络应用程序 npm 是
  • 如何在 Linux 中列出用户

    您是否曾经想要列出 Linux 系统中的所有用户或统计系统中的用户数量 有创建用户 删除用户 列出登录用户的命令 但是在Linux中列出所有用户的命令是什么 本教程将向您展示如何列出 Linux 系统中的用户 使用以下命令获取所有用户的列表
  • 如何在 Ubuntu 18.04 上创建 Python 虚拟环境

    Python 虚拟环境是一个独立的目录树 其中包括 Python 安装和许多附加包 Python虚拟环境的主要目的是为不同的Python项目创建一个隔离的环境 这样您就可以在每个项目的基础上安装特定版本的模块 而不必担心它会影响您的其他 P
  • 如何在 Debian 10 Linux 上安装和配置 Redis

    Redis 是一个开源内存键值数据存储 它可以用作数据库 缓存和消息代理 并支持各种数据结构 例如字符串 哈希 列表 集合等 Redis 通过 Redis Sentinel 提供高可用性 并通过 Redis Cluster 跨多个 Redi
  • 如何在 CentOS 8 上安装 Yarn

    Yarn 是一个与 npm 兼容的 JavaScript 包管理器 可帮助您自动执行安装 更新 配置和删除 npm 包的过程 它的创建是为了解决 npm 的一系列问题 例如通过并行操作加快软件包安装过程并减少与网络连接相关的错误 本教程将指
  • 使用 Python Pandas read_json 读取 JSON 文件

    Pandas read json 函数允许您读取 JSON 文件并将其转换为Pandas数据框 在本教程中 您将学习如何使用 Python 的 Pandas 加载 JSON 文件 处理各种 JSON 格式 自定义列标签 推断数据类型 解析日
  • Seaborn 热图教程(Python 数据可视化)

    在本教程中 我们将使用名为 seaborn 的 Python 库以热图形式表示数据 该库用于基于以下内容可视化数据Matplotlib 您将了解什么是热图 如何创建它 如何更改其颜色 调整其字体大小等等 所以让我们开始吧 目录 hide 1
  • 安装、配置和维护 Linux DNS 服务器

    DNS 域名系统 是计算机的命名系统 执行此操作的服务是 DNS 服务器 它将 IP 地址转换为人类可读的地址 这个进程是互联网的支柱 也是服务器中非常重要的服务 因此从那时起 我们将讨论 DNS 服务器 特别是 Linux DNS 服务器
  • Linux 中的 SSH 端口转发(隧道)

    在本教程中 我们将介绍 Linux 中的 SSH 端口转发 这是 SSH 实用程序的一项功能 Linux 管理员使用该实用程序在不同系统之间创建加密且安全的中继 您可以使用 SSH 端口转发 SSH 隧道 在两个或多个系统之间创建安全连接
  • 在几分钟内创建一个 Python Discord 机器人:简单教程

    Discord 机器人是在 Discord 平台上运行的自动化程序 机器人可以做各种各样的事情 从播放音乐 发送自动消息 管理角色 到踢掉违反规则的用户 以及许多其他任务 Discord 机器人的核心功能是基于事件构建的 例如 当发生新消息
  • 如何在 Apache/Nginx 中阻止 .git 目录

    版本控制系统 例如 Git 对于软件开发至关重要 但是 如果没有适当保护 它们可能会暴露敏感信息 许多 Web 开发人员错误地让 git 目录在生产环境中可访问 这可能允许任何人下载和查看存储库 本文演示了如何阻止对 gitApache 和
  • 如何在 macOS 上安装 LibreOffice

    如果您使用 macOS 您可能会使用 Apple 构建的应用程序 例如 Pages Numbers 和 Keynote 进行文字处理 电子表格和演示文稿 这些都是很棒的程序 具有很多功能并且易于使用 它们也不是免费的 您只能通过 Mac A
  • Linux 中的 whoami 命令(查找登录用户)

    whoami 是一个基本的 Unix Linux 命令 用于查找与当前有效用户 ID 关联的用户名 这通常用于识别 shell 中当前登录的用户 该命令也适用于外壳脚本识别运行脚本的用户 ID Syntax whoami OPTION Li
  • 如何在 PHP 中计算数组元素

    您可以使用 PHPcount or sizeof 函数获取数组中元素或值的数量 这count and sizeof 对于已使用空数组初始化的变量 方法返回 0 如果数组未初始化 您将看到错误 在这种情况下 您可以使用 isset 函数来检查
  • 如何禁用 Apache 中的目录列表

    Apache 是最流行的开源 Web 服务器之一 全球许多网站都在使用它 它的功能之一是能够在不存在索引文件时列出目录及其内容 此功能虽然对某些用途很方便 但可能会向公众公开有关网站结构或内容的敏感信息 在本文中 我们将引导您了解如何禁用