NodeJS 如果我把firebase存储的所有安全规则都设置为所有人都能读和写,安全吗?

hs1rzwqc  于 2023-02-08  发布在  Node.js
关注(0)|答案(2)|浏览(110)

我已经尝试了相当长的一段时间,以开发一个身份验证系统使用firebase/auth,但这产生了不满意的结果,我注意到,然后每当我登录用户在网站上,然后我访问网站从另一个设备我可以看到所有的数据之前的用户,完全不需要登录。我已经在网上研究了如何解决这个问题,但是,即使做了Firebase文档所说的一切,我仍然遇到同样的问题。我不能这样离开它,因为这当然是一个巨大的安全风险。所以我把事情交给我自己,并创建了一个身份验证系统与json-web-token,这工作得很好,但是,由于我对firebase存储安全规则的配置,我无法访问数据,因为我没有使用firebase/auth登录。
我已尽最大努力不在firebase中显示指向我的帐户的任何链接或配置,所有图像都将在服务器端获取并转换为base64,然后在页面上呈现,因此,如果我隐藏firebase配置,并且不在网站上显示任何firebase存储链接,则在不检查用户是否已使用firebase/auth登录的情况下允许读写是否安全

rules_version = '2';
service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write: if request.auth != null;
    }
  }
}
huwehgph

huwehgph1#

如果对云存储中文件的所有访问都来自Node.js SDK,它会绕过您设置的安全规则。因此,在这种情况下,您不妨禁用所有访问:

allow read, write: if false;
qvsjd97n

qvsjd97n2#

是的,这可能是非常危险的。找到你的配置很容易做到,因为它们需要是公共的,你的连接甚至可以在你的前端工作。
如果有人想找到你的配置,他们可以。这就是为什么安全规则是非常重要的,你应该允许任何人访问你的数据库。

**根据您当前的安全规则:**如果有人获得您的配置的访问权限,他们可以简单地注册一个帐户,然后删除您的整个数据库与几行代码

如果您仅通过服务器上的服务帐户与Firebase通信,即您未使用web SDK,则可以按如下方式禁用它:
转到Firebase控制台〉项目设置〉常规在页面底部,您将看到活动的Web应用。选择要禁用的,然后选择移除此应用
现在,任何人都无法通过Web SDK访问您的应用程序

相关问题