如何在Apache、Nginx和Cloudflare中阻止.git文件?

不要暴露.git文件夹,该文件夹可能包含敏感信息。

当您通过Git初始化和部署应用程序时,它会创建一个包含必要信息的.git文件夹。如果通过互联网的web服务器或前端可以访问.git文件夹,则可能会泄漏敏感数据。

更糟糕的是,如果您在某些配置文件中存储了凭据。

使用这些链接_0>在GitHub存储库中查找凭据。

如果您不确定是否在Web应用程序的某个位置有.git文件夹,您可以使用诸如链接_1、链接_2或其他链接_3的安全漏洞扫描器。

Gitjacker不仅可以检测.git目录,还可以下载整个目录。

有多种方法可以处理此问题。

您可以选择不在服务器上保留.git文件夹或阻止任何请求。阻止请求非常简单,具体取决于您使用的Web服务器。

Nginx

如果您使用Nginx,可以在nginx.conf文件中添加以下位置指令

location ~ /.git {
  deny all;
}

上述指令将指示Nginx在包含.git的请求时返回403错误。

或者,如果您不希望攻击者认为服务器上有.git,则可以返回404。

location ~ /.git {
  return 404;
}

这将返回以下链接_4> 404。

无论您选择哪种方式,在更改配置后不要忘记重新启动Nginx。

service nginx restart

Apache HTTP

让我们看看如何在Apache Web服务器中阻止.git。您可以使用RedirectMatch或DirectoryMatch实现此目的。

使用RedirectMatch可能是最简单的方法。您只需要在httpd.conf或.htaccess文件中添加以下内容。

RedirectMatch 404 /.git

上述内容将在有人访问.git时返回404,以下内容将显示403。

RedirectMatch 403 /.git

接下来,尝试使用DirectoryMatch规则,将以下内容添加到httpd.conf文件中。


  Deny from all

重新启动Apache,访问包含.git的URL,将显示403 Forbidden错误。

Cloudflare

这是我最喜欢的方式。在边缘阻止请求!

但是,正如您可以猜到的那样,只有在您的网站通过链接_5>网络加速时,这才会起作用。

  • 登录到Cloudflare
  • 转到防火墙选项卡 >> 防火墙规则 >> 创建防火墙规则

  • 给规则命名-阻止GIT
  • 选择字段-URI
  • 运算符-包含
  • 值-.git
  • 选择操作-阻止并保存

规则在所有Cloudflare数据中心传播大约需要1分钟。完成后,Cloudflare将完成其他操作。

需要注意的一件事是,当实施Cloudflare防火墙规则来阻止时,您必须确保链接_6>没有暴露。否则,攻击者可以链接_7>访问.git文件。

结论

希望以上内容能帮助您减轻暴露.git目录的风险。

类似文章