如何防止在浏览器控制台中使用firebase.database()?

时间:2020-02-06 15:05:31

标签: javascript database firebase security firebase-realtime-database

我在javascript中使用Firebase时遇到安全问题。用户只需打开浏览器的控制台,然后输入 firebase.database().ref().once("value", (data) => console.log(data.val)); 之类的内容,即可获取所有数据库数据。我可以以某种方式防止它吗?

2 个答案:

答案 0 :(得分:1)

您可以使其更困难,但并非没有。即使不使用已知的全局访问已加载到浏览器中的SDK,确定的用户也可以直接调用API端点,也可以通过public REST API来调用。

如果您需要安全性,则应该将Firebase Authenticationsecurity rules一起使用,以确定谁可以读写哪些数据。安全规则是在服务器端评估的,因此无法规避。

答案 1 :(得分:0)

这取决于您的Firebase /数据库规则的配置。 您应禁用未认证用户的读取。

它看起来应该像这样:

"rules": {
  ".read": "auth != null",
  ".write": "auth != null"
}

实际上,如果没有实施Firebase身份验证,则可以从任何可以运行JavaScript的内容(包括浏览器控制台)访问Firebase数据库。