【问题标题】:Is there a way for Firebase Functions to protect an HTTP Endpoint using domain verification?Firebase 函数有没有办法使用域验证来保护 HTTP 端点?
【发布时间】:2020-04-01 23:55:00
【问题描述】:

这就是我想要实现的目标:我有一个使用 Firebase 托管托管的静态网站,并且它有一个 Google 表单。单击提交按钮后,我还想向用户发送一封电子邮件,确认我们收到了表单。我使用 HTTP 端点编写了一个 Firebase 函数。但是,该端点向公众公开。有什么办法可以保护这个功能?我知道我们可以对登录用户进行身份验证,但我不需要访问者创建帐户来提交表单。

谢谢!

【问题讨论】:

    标签: javascript firebase http firebase-authentication google-cloud-functions


    【解决方案1】:

    Firebase CLI 部署的 HTTP 触发器始终可供任何具有互联网连接的人访问。 Google Cloud 提供了唯一的访问控制来限制 IAM 的访问,这在这里对您没有帮助。

    您应该做的是保护端点只能由使用 Firebase 身份验证登录的用户访问。这方面的例子很多。

    Callable functions 还可以方便地检查最终用户在调用时是否经过身份验证。

    【讨论】:

      【解决方案2】:

      另一种可能是使用req.headers["x-forwarded-for"] 来比较请求的源IP 地址。它不完全是域检查,因为 TCP/IP 不知道 DNS,但它仍然可以与反向查找(或简单的 IP 地址列表)结合使用。这取决于场景(函数实际执行的操作),因为这在未经身份验证的情况下也可以工作。它来自哪里与谁......请注意,无法区分同一 IP 地址上的另一个 Firebase 托管,但它会排除来自客户端的直接访问。

      【讨论】:

        猜你喜欢
        • 2023-01-27
        • 1970-01-01
        • 2021-07-17
        • 1970-01-01
        • 2015-01-27
        • 2015-06-19
        • 1970-01-01
        • 2015-01-27
        • 2019-11-05
        相关资源
        最近更新 更多