如何在 Apache/Nginx 中阻止 .git 目录

2023-10-26

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

Apache:使用 .htaccess

  1. 访问 .htaccess 文件:导航到您网站的根目录或所在目录.git文件夹位于。
  2. 编辑 .htaccess 文件:在您喜欢的文本编辑器中打开 .htaccess。如果该文件不存在,请创建一个。
  3. Block access to the .git directory: Add the following lines to your .htaccess file:
    
    # Block access to .git directory
    <Directory ~ "\.git">
        Order allow,deny
        Deny from all
    </Directory>
    
    
    .htaccess
  4. 保存并关闭文件:编辑完成后,保存并关闭.htaccess 文件。
  5. 重新启动 Apache 服务器:保存文件后,配置更改将立即生效。不过,最好确保 Web 服务器通过重新启动来获取所有更改。

Nginx

  1. 访问 Nginx 配置:Nginx配置文件的位置根据系统的不同而不同,但通常位于/etc/nginx/或/usr/local/nginx/conf/中。主配置文件通常命名为 nginx.conf。
  2. 编辑配置:在您喜欢的文本编辑器中打开 nginx.conf 或相应的服务器块文件。
  3. Block access to the .git directory: Add the following block within the server block to deny access to the .git directory:
    
    # Block access to .git directory
    RedirectMatch 403 /\.git
    
    
    Nginx

    此配置拒绝访问包含以下内容的任何路径.git并返回 403 Forbidden HTTP 状态。

  4. 保存并关闭文件:进行更改后,保存并关闭文件。
  5. 重新加载 Nginx 配置:要应用更改,请使用以下命令重新加载 Nginx 配置:
    sudo nginx -s reload 
    

Testing

应用更改后,确保它们按预期工作至关重要:

  • 尝试访问 .git 目录:在 Web 浏览器中,导航到 http://yourdomain.com/.git/ 或该目录中的任何文件。
  • 期待 403 响应:如果一切设置正确,服务器应该返回一个《403禁止》回复。

结论

维护 Web 服务器时,安全性至关重要,尤其是使用 Git 等版本控制系统时,可能会无意中暴露敏感信息。始终确保 .git 等目录被阻止公共访问。定期检查和审核您的 Web 服务器配置是否存在任何潜在漏洞。

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

如何在 Apache/Nginx 中阻止 .git 目录 的相关文章

  • Pythonnamedtuple(将元组提升到一个新的水平)

    在本教程中 我们将深入研究命名元组 它们是什么 如何创建和操作它们 以及何时使用它们 或不使用它们 命名元组是Python内置的一部分收藏模块 并且它们提供了一种将数据捆绑在一个名称下的便捷方法 它们是 Python 内置元组数据类型的子类
  • 使用 Python 处理 CSV:综合教程

    CSV 逗号分隔值 文件是存储和共享表格数据的最常见方法之一 这些文件由行和列组成 其中每行代表一个记录 列包含由分隔符 通常是逗号 分隔的值 Python 提供了多种内置方法来处理 CSV 文件 使您可以高效地读取 写入和操作数据 本教程
  • Linux Bash 脚本编写第 5 部分 – 信号和作业

    在上一篇文章中 我们谈到了输入 输出和重定向在 bash 脚本中 今天我们将学习如何在Linux系统上运行和控制它们 到目前为止 我们只能从命令行界面运行脚本 但这并不是运行 Linux bash 脚本的唯一方法 这篇文章描述了控制 Lin
  • 使用curl命令的SSL/TLS:安全连接指南

    卷曲命令是一种发出网络请求的工具 它在通过 HTTPS 与安全服务器通信时使用 SSL TLS 默认情况下 curl尝试在可用时使用安全连接 但了解如何控制和诊断这些连接至关重要 目录 hide 1 使用客户端证书 2 指定证书类型 3 使
  • 如何使用 tqdm 创建 Python 终端进度条?

    进度条是估算和显示任务所需时间的宝贵工具 这些也可以添加到您的 Python 脚本或代码块中 以指示代码执行所需的时间 Python 中有多种可用的库 例如progressbar and tqdm可以用于此目的 目录 hide 1 什么是
  • 使用 Linux curl 命令管理 Cookie

    与 Web 应用程序交互时 您会遇到处理 cookie 和会话的需要 在本教程中 您将学习如何使用卷曲命令发送 接收和管理 cookie 目录 hide 1 手动发送 Cookie 标头 2 存储从服务器接收到的 Cookie 3 通过请求
  • 正确理解 Linux 运行级别

    您可以将 Linux 运行级别视为操作系统运行的不同 模式 每种模式或运行级别都有其打开或关闭的进程和服务列表 从 Linux 启动时起 它就始终处于某个运行级别 当您继续使用计算机时 此运行级别可能会发生变化 具体取决于操作系统需要访问的
  • Linux PS1 提示定制终极指南

    PS1 或提示字符串 1 是主要提示变量 它定义 Linux shell 环境中命令行提示的外观和元素 它提供了多个自定义选项 使您的命令提示符信息更丰富且更具视觉吸引力 本教程将讨论这些细节 增强您的命令行界面体验 目录 hide 1 查
  • 11 个令人惊叹的 NumPy Shuffle 示例

    蟒蛇的NumPy包提供了各种用于执行涉及随机性的操作的方法 例如从给定的数字列表中随机选择一个或多个数字的方法 或者生成给定范围内的随机数的方法 或者从给定分布 所有这些方法均在randomNumPy 包的模块 其中一种方法是numpy r
  • 使用 pyenv 管理多个 Python 版本

    pyenv 是一个简单而强大的工具 用于管理多个Python版本 作为一名 Python 开发人员 您可能面临过不同项目需要不同 Python 版本的情况 pyenv 为这个问题提供了一个优雅的解决方案 本质上 pyenv 是一个 Pyth
  • 如何在Ubuntu 20.04上安装Netdata监控工具

    Netdata是一款专为实时系统性能监控解决方案而设计的开源工具 它收集系统活动的实时指标 如 CPU 使用 内存使用 带宽使用和磁盘活动等 并通过图形图表在 Web 界面上显示信息 Netdata官方团队建议安装netdata监控工具使用
  • 用于删除重复数组元素的 JavaScript 程序

    数组是包含一组元素的数据结构 通常这些元素都是相同的数据类型 例如整数或字符串 但在 JavaScript 中 我们可以存储不同类型的元素 使用数组 您可以组织数据 以便可以轻松地对一组相关值进行排序或搜索 本教程向您介绍了如何使用 Jav
  • 如何在 Debian 9 上安装 Python 3.9

    Python 是一种面向对象的高级编程语言 它是一个拥有大型社区的开源软件 Python 被 Google 等顶级科技公司用作关键语言 Python 3 9 稳定版本已发布 包含多项改进和安全更新 它包括多个新模块 改进的现有模块和许多其他
  • 如何在 Debian11 上安装和保护 Apache

    Apache HTTP Web 服务器是广泛使用的 Web 服务器之一 尤其是在 Linux 发行版上 它是一种免费的跨平台 被互联网上的大量网站使用 Apache Web 服务器使用 HTTP 来处理请求并接收 Web 信息 Apache
  • 如何在 Ubuntu、CentOS 和 Fedora 上设置 Hadoop 2.6.5(单节点集群)

    阿帕奇Hadoop 2 6 5与之前的稳定 2 X Y 版本相比有显着改进 该版本在HDFS和MapReduce方面有很多改进 本操作指南将帮助您在 CentOS RHEL 7 6 5 Ubuntu 和其他基于 Debian 的操作系统上安
  • C# 中的空合并运算符 (??)

    在 C 领域 程序员使用许多运算符来执行各种操作 并且每个运算符都有其独特的功能 空合并运算符 就是这样一个运算符 通常被视为管理空值的重要实用程序 什么是空合并运算符 空合并运算符是一个二元运算符 可简化对空值的检查并在遇到空值时定义默认
  • Linux 中的 su 命令及有用示例

    The su 命令也称为切换用户 该命令用于在登录会话期间成为另一个用户 当没有用户名调用时 su 默认切换到超级用户 基本上 su 命令用于将当前登录的用户更改为另一个用户 而无需从系统注销 它是 Linux 终端用户经常使用的命令 本教
  • 如何在 Amazon Linux 2 上安装 Python 3.11

    Amazon Linux 2 是由 Amazon Web Services AWS 团队开发的操作系统 您可以使用此操作系统启动 Amazon ec2 实例 此外 磁盘映像可用于主要的虚拟机管理程序平台 Python 是一种功能强大的通用编
  • 如何在 Python 中读取文本文件

    使用 Python 应用程序时 您需要使用 Python 读取和写入文本文件 您可以参考我们的其他教程用Python编写文本文件 在 Python 中读取文本文件是一个简单的过程 可以使用几种不同的方法来完成 在本文中 我们将介绍以下在 P
  • 如何在 Ubuntu 18.04、16.04 和 LinuxMint 19/18 上安装和使用 Cordova

    阿帕奇科尔多瓦是一个开源移动开发框架 它允许您使用 HTML5 CSS3 和 JavaScript 等标准 Web 技术进行跨平台开发 避免每个移动平台的原生开发语言 Apache Cordova 命令行需要 Node js 才能在 NPM

随机推荐

  • 如何在 Ubuntu 22.04 上安装 Node.js

    Node正在成为开发者构建前端应用程序的首选 此外 许多开发人员正在使用它来构建 REST API 和 CRUD 该编程语言由 OpenJS 基金会开发 运行在 Chrome 的 v8 引擎上 Node js 适用于大多数现代操作系统 包括
  • 如何在 Ubuntu 18.04 和 16.04 LTS 上安装 Dovecot

    本教程将帮助您在 Ubuntu 系统上安装 Dovecot Dovecot 包为 POP IMAP 协议提供服务 通过这些协议 您可以从远程客户端访问电子邮件帐户 步骤 1 在 Ubuntu 上安装 Dovecot Dovecot 软件包可
  • 使用 Crontab 安排 Cron 作业

    Cron 是一个调度守护进程 按指定的时间间隔执行任务 这些任务称为 cron 作业 主要用于自动化系统维护或管理 例如 您可以设置 cron 作业来自动执行重复任务 例如备份数据库或数据 使用最新的安全补丁更新系统 检查磁盘空间使用情况
  • 如何列出 Debian 上已安装的软件包

    在本指南中 我们将解释如何列出和过滤 Debian 上已安装的软件包 我们还将向您展示如何检查是否安装了特定的软件包 计算已安装的软件包以及找出已安装软件包的版本 当您需要在另一台计算机上安装相同的软件包或想要重新安装系统时 了解如何列出基
  • 如何在 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 和