如何修复.git暴露的firebase漏洞

如何修复.git暴露的firebase漏洞,git,firebase,security,firebase-hosting,Git,Firebase,Security,Firebase Hosting,我最近收到了一封电子邮件,原因是一次所谓的公开扫描: 它说: 问题是您的网站上有一个公开可用的git存储库。您可以通过访问/.git/HEAD进行检查。当您访问目录/.git时,通常会出现403错误,因为没有index.html/.php文件,并且您不允许显示目录列表/autoindex(如果您可以看到目录结构,您的Web服务器配置错误,这是另一种漏洞)。尽管有403,但可以直接访问文件。这是我从/.git/logs/HEAD中找到您的电子邮件地址的方式,它是提交列表,包含提交者的详细信息 我不

我最近收到了一封电子邮件,原因是一次所谓的公开扫描:

它说:

问题是您的网站上有一个公开可用的git存储库。您可以通过访问/.git/HEAD进行检查。当您访问目录/.git时,通常会出现403错误,因为没有index.html/.php文件,并且您不允许显示目录列表/autoindex(如果您可以看到目录结构,您的Web服务器配置错误,这是另一种漏洞)。尽管有403,但可以直接访问文件。这是我从/.git/logs/HEAD中找到您的电子邮件地址的方式,它是提交列表,包含提交者的详细信息

我不是这方面的专家,我只是使用firebase控制台部署了我的站点。我使用git对文件夹进行版本控制,并且 屏幕截图将显示项目文件夹根目录中的文件夹结构,并显示隐藏文件

在上面发布的链接中,提供了缓解示例,但我认为这些示例适用于对其服务器有控制权的人——我使用firebase托管,似乎没有这样的控制权

问题:

  • 这是一个安全漏洞吗
  • 如果是这样,我如何减轻它

  • 使用
    firebase.json
    将目录
    .git
    从部署中排除可能是最省力的:

    {
      "database": {
        "rules": "database.rules.json"
      },
      "hosting": {
        ...
        "ignore": [
          "README.md",
          "firebase.json",
          ".firebaserc",
          ".git",
          ".gitignore",
          ".idea",
          ...
        ]
      }
    }
    

    底线是:只部署服务页面所必需的内容。

    +1。另一个选项(我们通常默认)是为您的托管内容(例如“public”)提供一个单独的目录,并将任何web资产移动到其中,将其他所有内容都排除在部署之外。@IanBarber这可能会很有用,如果默认的
    firebase.json
    将通过通配符
    *
    **/.
    排除所有点文件,因为这将匹配
    .git
    .svn
    ,在预防性安全方面……甚至在部署时自动拒绝所有公共存储库数据目录名,因此,即使使用非默认的
    public
    目录部署也不能泄漏这些信息。这似乎是处理现有项目的一种非常快速有效的方法。对于未来的项目,我将考虑@IanBarber的建议。