【问题标题】:Only allow Firebase cloud functions through hosting rewrites仅允许通过托管重写的 Firebase 云功能
【发布时间】:2021-03-28 12:46:42
【问题描述】:

TLDR/我的问题:有没有办法禁用 Firebase 函数的自动生成端点?

我已按照说明 here 进行操作,以便我的 Firebase 函数可用于自定义端点(例如 mydomain.com/api/function1)。然后我继续并在该域模式(我拥有 DNS 控制权)上成功配置了 an API rate limiter with Cloudflare,并验证它是否按预期正常工作。

这给我留下的唯一问题是 Firebase 自动提供的我的函数的默认 URL(例如 us-central1-my-hosting-project.cloudfunctions.net/function1)仍未受到保护。

【问题讨论】:

  • 作为我的问题的后续:似乎每当我使用我的自定义端点时,自定义端点都会包含一个 referer 标头作为值。依靠此referer 标头的存在来确定是否应接受函数调用是否安全?这是迄今为止我想出的唯一可行的解​​决方案。
  • This thread 可以帮助您解决后续问题
  • 谢谢@DonnaldCucharo。可悲的是,该线程引导我远离使用我想出的一个可行的解决方案。希望有人会对我原来的问题有更好的建议。

标签: firebase google-cloud-functions cloudflare


【解决方案1】:

至少目前您无法使用 GCP 工具执行此操作。

您可以做的替代方法是检查您的请求的Host header,如果它没有提供您的自定义域,则返回错误。

应该可以通过Request.hostname获取主机头

【讨论】:

    【解决方案2】:

    您想要更改“Cloud Functions Invoker”权限。

    现在,它可能会说

    “allUsers”和“allAuthenticatedUsers”

    Firebase 不会显示此信息 - 但如果您:

    1. 转到 GCP 控制台中的主 Cloud Functions 菜单。(console.cloud.google.com/functions)
    2. 选中要调整权限的函数左侧的复选框。
    3. 查看屏幕右侧,当您选中该框时,您会看到一些权限已填充。
    4. 查看角色/成员下,您将看到“Cloud Functions Invoker”;我的这里说“allUsers”(我不能发布图片,但是,相信我,这太棒了)。
    5. 您可以删除此行 - 它将使函数不公开。
    6. 您必须允许某些东西调用该函数才能运行(服务帐户等)。

    【讨论】:

      猜你喜欢
      • 2020-05-03
      • 2018-04-11
      • 2017-12-11
      • 2020-06-13
      • 2020-03-15
      • 2020-12-27
      • 2020-05-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多