【问题标题】:How to fix firebase vulnerability exposed by .git如何修复.git暴露的firebase漏洞
【发布时间】:2019-02-02 11:03:59
【问题描述】:

我最近收到了一封涉嫌开放扫描的电子邮件:https://smitka.me/

它说:

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

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

在上面发布的链接中,提供了缓解示例,但我认为它们适用于可以控制其服务器的人 - 我运行 firebase 托管,似乎没有这样的控制。

问题:

  1. 这是一个安全漏洞吗?
  2. 如果是这样,我该如何缓解?

【问题讨论】:

    标签: git firebase security firebase-hosting


    【解决方案1】:

    最少的努力可能是从部署中排除目录.git,使用firebase.json

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

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

    【讨论】:

    • +1。另一种选择(也是我们通常默认的)是为您的托管内容(例如“公共”)设置一个单独的目录,并将任何网络资产移到其中,将其他所有内容排除在部署之外。
    • @IanBarber 它可能很有用,如果默认 firebase.json 将通过通配符 .***/.* 排除所有点文件 ...因为这将匹配 .git 和 @ 987654328@,在预防性安全方面......甚至在部署时自动拒绝所有常见的存储库数据目录名称,因此即使具有非默认 public 目录的部署也不会泄漏该信息。
    • 这似乎是处理我现有项目的一种非常快速有效的方法。对于未来的项目,我会考虑@IanBarber 的建议。
    猜你喜欢
    • 2021-10-10
    • 1970-01-01
    • 1970-01-01
    • 2013-02-06
    • 2021-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    相关资源
    最近更新 更多