firebase - 为什么云函数 URL (Firebase) 可以公开访问?如何限制对特定外部呼叫的访问?
问题描述
我正在使用 Firebase 来发送推送通知,使用 Firestore 数据库来存储用户信息和发送通知,以及一个云功能,它将与外部 API 调用交互以执行任务。
一切都很好......很好......
事实上,当我在没有经过身份验证的情况下调用云函数 URL 时,它可以工作。最糟糕的是:当我在 Google 上输入云函数 URL 时,它可以工作并返回我的 Firestore 数据库元素!
所以 URL 云函数是 PUBLIC,如果有人找到了 URL 云函数,他就可以访问 Firestore 数据库并可以在其中读写。
我在互联网上查看了所有限制对云功能 URL 的访问的可能性,仅限于可以使用但没有任何吸引力的用户。
有人可以帮我找到这个关键问题的适当解决方案吗?
希望这篇文章能在未来对某人有所帮助
谢谢
解决方案
您将在官方 Cloud Function Samples 列表中找到有关如何“将 HTTPS 功能限制为仅限您应用的 Firebase 用户”的示例。
见这里: https ://github.com/firebase/functions-samples/tree/master/authorized-https-endpoint
另一种可能性是将您的 HTTP 云函数转换为可调用函数。如文档中所述,“使用可调用对象、Firebase 身份验证和 FCM 令牌(如果可用)会自动包含在请求中。”
但是,这仅在您从 app调用 Cloud Function 时才有意义。如果您必须通过其 URL(如“标准”REST API)调用它,这不会让事情变得更容易。
推荐阅读
- php - 时间用完后刷新页面的Javascript
- r - 如何将.avl 后缀文件读入r?
- javascript - 如果无法加载,如何隐藏图像/视频
- pandas - 从数据框的文本列中删除不需要的字符
- android - MediaRecorder Surface Input with OpenGL - 如果启用了音频录制,则会出现问题
- python - 如何在不依赖列名的情况下操作数据框的值
- ios - 在 Flutter 中监听方向状态;旋转前后
- python - Assigning global attribute name using a parameter in netCDF4
- memory - 每个页面错误都有磁盘访问吗?
- apache-flink - 具有本地执行环境的 Flink 保存点(如独立应用程序)