我在javascript中使用firebase时遇到了安全问题。用户只需打开浏览器的控制台并键入类似firebase.database().ref().once("value", (data) => console.log(data.val));
的内容即可获取所有数据库数据。我可以以某种方式阻止它吗?
你可以让它更困难,但并非不可能。即使无法访问使用已知全局加载到浏览器中的 SDK,确定的用户也可以直接调用 API 端点,也可以通过公共 REST API 调用。
如果您想要安全性,则应使用 Firebase 身份验证和安全规则来确定谁可以读取和写入哪些数据。安全规则在服务器端进行评估,因此无法规避。
这取决于您的 Firebase/数据库规则的配置。 应禁用未经身份验证的用户的读取。
它应该看起来像这样:
"rules": {
".read": "auth != null",
".write": "auth != null"
}
实际上,如果没有实现Firebase Authentization,您可以从任何可以运行JavaScript(包括浏览器控制台(的内容访问Firebase数据库。