我在 Android 环境中使用 Firebase 已有 2 或 3 个月了。
我所有的安全性都是用户注册和登录以及一些基于身份验证的数据库规则。
现在我正在网络环境(HTML 和 Javascript)中启动一个新项目。
它应该是一个连接到 firebase 来执行一些写入和读取操作的 Web 应用程序。
我不希望用户进行身份验证,因为没有必要。
让我害怕的是浏览器开发者控制台可以看到所有 HTML 和 javascript。在我的 Html 内部有 Firebase 配置,需要将我的项目与数据库和所有其他功能连接起来。
让每个人都看到配置是否安全?
在这种情况下实现安全的正确方法是什么?
最佳答案
Firebase 数据库访问主要围绕了解用户并根据该信息授权其使用。如果您不要求网络用户登录,则允许他们访问非常容易。
但是,您将如何控制恶意用户覆盖其他人的数据或锁定其他人对数据库的访问权限?在不知道恶意用户身份的情况下,您唯一的选择是:
- 允许所有人进入
- 禁止任何人进入
如果您不想要求用户登录,但仍希望根据了解哪个用户执行了每个操作来确保访问安全,则可以使用 Firebase's anonymous authentication 。文档中的代码片段:
firebase.auth().signInAnonymously().catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
// ...
});
这是一个无 UI API 调用,可为您的用户生成唯一的 ID。因此,用户不会有任何负担,但您可以在安全规则中仍然对此类用户的 UID 进行操作。
关于javascript - 无需身份验证的 Firebase 数据库安全性 (Web),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43892752/