这就是我正在努力实现的:我有一个用Firebase Hosting托管的静态网站,它有一个谷歌表单。点击提交按钮后,我还想向用户发送一封电子邮件,确认我们收到了表单。我已经使用HTTP端点编写了一个Firebase函数。但是,该端点是向公众公开的。有什么办法可以保护这个功能吗?我知道我们可以对登录用户进行身份验证,但我不需要访问者创建帐户来提交表单。
谢谢!
Firebase CLI部署的HTTP触发器始终可供任何具有internet连接的人访问。唯一的访问控制由谷歌云提供,以限制IAM的访问,这对您没有帮助。
相反,您应该保护端点,使其只能由使用Firebase身份验证登录的用户访问。有很多这样的例子。
- 如何保护firebase云功能HTTP端点,只允许firebase验证用户
可调用函数还可以方便地检查最终用户在调用时是否经过身份验证。
另一种可能是,使用req.headers["x-forwarded-for"]
来比较请求的源IP地址。这并不完全是一个域检查,因为TCP/IP不知道DNS,但它仍然可以与反向查找(或简单的IP地址列表(相结合。这取决于场景(函数实际做什么(,因为这在没有经过身份验证的情况下也会起作用。这是来自哪里与谁。。。请注意,同一IP地址上的另一个Firebase主机无法区分,但它将排除从客户端直接访问的可能性。