【问题标题】:Only allow Cloud Functions to be called in my app code只允许在我的应用代码中调用 Cloud Functions
【发布时间】:2021-03-30 07:55:28
【问题描述】:

我只希望从我的应用程序中的代码调用我的 Cloud Functions。

每个onCall() Cloud Function 都提供context 变量,该变量提供有关如何或从何处进行调用的信息:

exports.beginRound = functions.https.onCall(async (data, context) => {
    if (context.auth.uid === null){ return 404 }

我的问题是:以上行是否足以防止在我的应用之外调用函数?

只有在用户通过身份验证时才应该让函数继续执行。并且只有在用户使用我的应用时才应该进行身份验证,对吧?

我只是想澄清一下。

谢谢

【问题讨论】:

    标签: node.js firebase firebase-authentication google-cloud-functions


    【解决方案1】:

    以上行是否足以防止在我的应用程序之外调用函数?

    您有什么检查用户是否已使用您的项目启用的已启用身份验证提供程序进行身份验证。仅此而已。

    请求可能来自任何地方。它不必来自您的应用程序。只要用户已通过身份验证并拥有一个令牌来验证其与启用的提供者的身份,他们就能够调用此函数并绕过检查。

    实际上,大多数访问将来自您的应用,但就安全性而言,请注意,从技术上讲,请求不一定来自客户端应用代码。应用程序代码从根本上说是不安全的,可能会受到损害。该请求可以使用公共 API 对用户进行身份验证、获取令牌并使用 callable protocol 传递它。

    【讨论】:

      猜你喜欢
      • 2022-11-04
      • 1970-01-01
      • 2020-08-16
      • 2022-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多