将 Cloud Firestore 限制为特定域

Aks*_*hay 3 firebase firebase-security google-cloud-firestore

有没有办法限制 Cloud Firestore(用于托管/网络)进行 CRUD 操作,但仅限于一个域,比如说xyz.com

例如,下面的规则在read, update, delete未经授权的情况下锁定,但您仍然可以将write事物锁定到数据库。

service cloud.firestore {
  match /databases/{database}/documents {
    match /coming-soon-email-ids/{document=**} {
      allow write;
      allow read, update, delete: if request.auth.uid == !null;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

还是我必须在其中集成 Google 的防火墙?

Dou*_*son 6

Firebase 安全规则无法限制对网络域的访问。一般而言,这是不可能的,因为 Firestore 旨在从世界各地的移动客户端访问,使用 Web、Android 和 iOS。Android 和 iOS 客户端似乎从未来自某个域。他们只是通过提供的客户端库或有时通过 Firestore REST API 直接访问数据库。Web 客户端甚至可能欺骗其明显的域(只有 HTTP 请求中不安全的“Referrer”标头才真正可用)。

您只能真正限制使用 Firebase 身份验证登录您的应用或网站的用户的访问权限,但您无法限制他们来自何处