Firebase规则:仅允许特定URL?

Mel*_*tik 5 rules firebase

首先,对不起我的英语不好。

我有一个Firebase实时数据库。
而且我的网站有一个“喜欢”按钮应用程序。

但是我的数据库并不安全,因为每个人都可以写入我的数据库。
我想要的是:“只允许来自我的网站的传入数据。并阻止来自其他网站的传入”

例如:

{
  "rules": {
    ".read": true,
    ".write": allow only incoming data from "www.example.com" and block incoming from other sites
  }
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?或者如何在Firebase控制台上设置此规则?
请帮忙。谢谢。

Kno*_*nox 7

如果我正确理解您想要执行的操作,我相信您可以使用与您的 Firebase 帐户关联的服务帐户来完成此操作。您可以手动创建允许使用您的 API 密钥的 URL 白名单。诀窍在于它是在 Google Cloud Platform 中找到的,而不是 Firebase 控制台中。不过,Firebase 控制台中有一个很棒的链接,可带您前往所需的位置。

(此外,前往何处的直接链接是https://console.cloud.google.com/apis/credentials,但请确保您登录到“用户和权限”中列出的“所有者”或“编辑者”帐户在下面的第二步中找到的选项卡。)

步骤如下:

  1. 登录 Firebase 控制台,然后转到 Firebase 控制台左上角“项目概述”旁边的齿轮图标。

  2. 然后导航到“用户和权限”选项卡

  3. 然后单击屏幕上主表下方显示“高级权限设置”的蓝色小链接。

  4. 它应该会带您进入 Google Cloud Console。(确保您登录到刚刚从 Firebase 控制台查看的“用户和权限”选项卡上列出的“所有者”或“编辑者”帐户。)点击 Google Cloud Console 左上角的菜单,然后转到“API 和服务”

  5. 然后单击子菜单项“凭据”

  6. 单击您想要限制的所需 API 密钥。

  7. 单击“应用程序限制”下的“HTTP Referers”单选按钮,添加一个项目,输入网址,然后单击“完成”保存更改,以设置您想要允许访问的网站。

  • 它确实有效,但事情是这样的:它仅适用于身份验证模块。为此,您需要启用身份验证并拥有一个数据库规则,例如 { "rules": { ".read": "auth != null", ".write": "auth != null" } } 该规则似乎不安全因为您不检查哪个用户经过身份验证,但这就是域限制发挥作用的地方。您将无法在数据库中执行任何操作,因为您需要进行身份验证,但身份验证仅限于您列入白名单的域! (2认同)