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