Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firestore数据库的安全性-SwiftUI_Swift_Firebase_Google Cloud Firestore_Firebase Security - Fatal编程技术网

Firestore数据库的安全性-SwiftUI

Firestore数据库的安全性-SwiftUI,swift,firebase,google-cloud-firestore,firebase-security,Swift,Firebase,Google Cloud Firestore,Firebase Security,我有一个非常简单的Firestore数据库,用于我创建的游戏。我有一个用户集合,其中包含文档,每个文档指定用户的用户名、电子邮件和高分 我希望每个人都能够阅读数据库中每个人的高分和用户名,因为我有一个列表,列出了每个用户的高分和用户名 但是,我只希望个人能够在登录后编写数据库(即提交自己的高分) 因此,我有以下安全规则: service cloud.firestore { match /databases/{database}/documents { match /{document

我有一个非常简单的Firestore数据库,用于我创建的游戏。我有一个用户集合,其中包含文档,每个文档指定用户的用户名、电子邮件和高分

我希望每个人都能够阅读数据库中每个人的高分和用户名,因为我有一个列表,列出了每个用户的高分和用户名

但是,我只希望个人能够在登录后编写数据库(即提交自己的高分)

因此,我有以下安全规则:

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if request.auth != null;
    } 
      match /Users/{document=**} {
      allow read: if true;
    }
  }
}
我的问题是,这安全吗?我猜这意味着从技术上讲,一个恶意用户可以阅读每个用户的电子邮件。有没有一种方法可以通过指定只有每个人都能够读取每个用户文档的highscore和username属性来防止这种情况

此外,此设置确实可以防止恶意用户写入数据库,对吗(在此处编辑:我想不会-我现在通过阅读此处的文档来查看此设置)

我不是Firebase的新手,但我对Firebase的安全规则是新手,因为我以前从未将应用程序推向生产,我希望确保我没有留下任何易受攻击的东西,因此在此欢迎您提供任何反馈/指导。

如我所述,任何人都可以从您的应用程序获取配置数据,并使用该数据调用Firebase API

这安全吗

只有您可以确定您的规则是否适合您的用例

这些规则允许任何人阅读
/Users
集合中的所有文档。此外,它们允许任何经过身份验证的用户读取和写入所有文档。如果这是您想要支持的用例,那么这些规则对您来说是正确的

因此,如果您在Firebase身份验证中启用了匿名身份验证提供程序,任何人都可以获取您的配置数据,编写一个最小的网页并调用
Firebase.auth().signinanoymously()
,然后使用
Firebase.firestore().collection(“用户”).get()读取所有用户数据

在这种问答式的方式中,保护您的数据库是很难学会的。相反,我建议你:

  • 请阅读上的Firebase指南
  • 道格的视频
  • 观看该系列,并特别注意电视上的插曲
  • 视频及其后续内容
  • 专业系列的插曲
  • 文章
  • 正如我在上所解释的,任何人都可以从您的应用程序中获取配置数据,并使用该数据调用Firebase API

    这安全吗

    只有您可以确定您的规则是否适合您的用例

    这些规则允许任何人阅读
    /Users
    集合中的所有文档。此外,它们允许任何经过身份验证的用户读取和写入所有文档。如果这是您想要支持的用例,那么这些规则对您来说是正确的

    因此,如果您在Firebase身份验证中启用了匿名身份验证提供程序,任何人都可以获取您的配置数据,编写一个最小的网页并调用
    Firebase.auth().signinanoymously()
    ,然后使用
    Firebase.firestore().collection(“用户”).get()读取所有用户数据

    在这种问答式的方式中,保护您的数据库是很难学会的。相反,我建议你:

  • 请阅读上的Firebase指南
  • 道格的视频
  • 观看该系列,并特别注意电视上的插曲
  • 视频及其后续内容
  • 专业系列的插曲
  • 文章

  • 是的,再次非常感谢您的回答这非常有用,我目前正在浏览文档,以找到适合我的设置的正确配置。非常感谢您在这里花时间回答,祝您愉快!是的,再次非常感谢您的回答这非常有用,我目前正在浏览文档,以找到适合我的设置的正确配置。非常感谢您在这里花时间回答,祝您愉快!