为什么可以公开访问云功能URL(Firebase)?如何限制对特定外部呼叫的访问?

时间:2019-05-23 13:23:44

标签: firebase authentication google-cloud-functions

我正在使用Firebase来发送推送通知,使用Firestore数据库来存储用户信息和通知发送,以及一个将与外部API调用交互以执行任务的云功能。

一切正常...很好...

实际上,当我未经身份验证就调用云函数URL时,它可以工作。最糟糕的是:当我在Google上输入云函数URL时,它可以工作并返回我的Firestore数据库元素!

因此,URL云功能是PUBLIC,如果有人找到URL云功能,则他可以访问Firestore数据库并可以在其中进行读写。

我通过互联网查看了所有限制访问云功能URL的可能性,仅适用于只能使用云功能URL但没有任何吸引力的用户。

有人可以帮助我找到这个关键问题的合适解决方案吗?

希望这篇文章对未来的人有帮助

谢谢

1 个答案:

答案 0 :(得分:1)

您将在官方Cloud Function Samples列表中找到有关如何“仅将HTTPS Function限制为您应用的Firebase用户”的示例。

请参阅此处: https://github.com/firebase/functions-samples/tree/master/authorized-https-endpoint


另一种可能性是将您的HTTP云功能转换为Callable。如文档中所述,“带有可调用项,Firebase身份验证和FCM令牌(如果可用)会自动包含在请求中。”

但是,仅当您从应用程序调用云功能时,这才有意义。如果您必须通过其URL(例如“标准” REST API)调用它,这将使事情变得简单。