【问题标题】:Firebase DB access && Security rulesFirebase 数据库访问 && 安全规则
【发布时间】:2018-12-15 22:52:56
【问题描述】:

我正在开发一个适用于 Firebase 数据库的 Android 应用。方法是设置应用程序,它不需要任何类型的身份验证,并且只允许用户从数据库中读取。 我想找到一种方法来限制只有使用我的应用程序的人才能访问数据库。 我知道出于安全目的存储“默认”凭据并不是最好的,我也尝试过使用匿名身份验证,但我不确定它是否正常工作(我试图删除身份验证步骤,我总是可以访问数据库来自我的应用程序)。

这里是验证用户的代码:

private void getAuthentication() {

    mAuth = FirebaseAuth.getInstance();
    mAuth.signInAnonymously().addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
        @Override
        public void onComplete(@NonNull Task<AuthResult> task) {
            if (task.isSuccessful()) {
                user = mAuth.getCurrentUser();
                Toast.makeText(MainActivity.this, "Authenticated!", Toast.LENGTH_SHORT).show();
            } else
                Toast.makeText(MainActivity.this, "Authentication failed.", Toast.LENGTH_SHORT).show();
        }
    });
}

Firebase 身份验证规则

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

我在网上阅读了一堆问题,但似乎没有人帮助我:/

有什么想法吗?

【问题讨论】:

  • “我也尝试过使用匿名身份验证,但我不确定它是否正常工作”。你测试过吗?你有错误吗?
  • 是的,它有效,我设置规则的方式只允许经过身份验证的用户读取数据,这正是我们想要的。只是我想知道匿名身份验证的安全性,仍然没有找到任何解释。

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


【解决方案1】:

上述规则将只允许经过身份验证的用户从您的数据库中读取数据。因此,无论用户是匿名身份验证(可以稍后转换为普通用户)还是用户使用用户和密码或任何其他提供商(如 Googe、Facebook、Twitter 等)进行身份验证,都适用相同的规则.这是使用 Firebase 安全规则的第一条也是最重要的规则,用户必须经过身份验证。

【讨论】:

  • 一切都好吗,我可以帮助您了解其他信息吗?
  • 首先感谢您的回答。但问题是另一个:我正在使用这种类型的身份验证,因为我不需要用户的任何登录身份验证。因此,我想知道匿名身份验证的安全性,我的意思是,我的应用程序的用户是否允许在应用程序内对自己进行身份验证,或者有人可以从应用程序外部对自己进行身份验证?谢谢。
  • 是的,您应用的用户将被允许在应用内进行身份验证。不可能有人可以从应用程序外部验证自己的身份。
  • 您能否向我展示文档中的任何示例或解释此“端到端”系统身份验证的任何内容?我在文档中找不到任何内容,我阅读了很多但找不到你在说什么:c
  • 你为什么说official documentation对你没有帮助?您可以在那里找到有关匿名身份验证的所有信息。但是您应该根据文档中的信息自己尝试创建“端到端”系统身份验证,如果出现其他问题,请提出另一个问题。
猜你喜欢
  • 2020-10-19
  • 1970-01-01
  • 2016-09-16
  • 2018-08-27
  • 1970-01-01
  • 2017-06-08
  • 2020-08-08
  • 1970-01-01
相关资源
最近更新 更多