应在不要求身份验证的情况下将哪些安全规则添加到Google Cloud Firestore,以确保数据安全

时间:2019-06-01 21:25:19

标签: android google-cloud-firestore firebase-security-rules

我有一个使用Firestore作为数据库的Android应用程序。我需要确保它的安全性,但是由于不需要,所以我不使用身份验证服务。

我在考虑是否可以从Android应用程序发送一个唯一的ID,该ID在Firestore规则中可以识别,并且只有用户(使用我的应用程序的用户)可以读写Firestore。

以下是我的安全规则-

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow readwrite ;
    }
  }
}

我希望我的Firestore数据库对非用户而言是安全的。

1 个答案:

答案 0 :(得分:0)

  

我在考虑是否可以发送唯一的ID

您不能将任意值传递给安全规则。为了安全地发送它并将其纳入安全规则,您必须将其作为自定义声明传递到用户的身份验证令牌中。

但是即使这样做,也会阻止恶意用户找到相同的秘密值(毕竟它必须在您的应用程序中可用),并以相同的方式将其传递到安全规则中。

考虑一下,匿名身份验证和自定义声明可能是您的解决方案。使用anonymous authentication on the client为用户生成一个UID,然后(在受信任的环境中,例如您的开发计算机,您控制的服务器或Cloud Functions)give that user a custom claimcheck for that custom claim in your security rules。 / p>