Firebase 云功能、云Firestore、云存储:如何防范机器人?

Firebase 云功能、云Firestore、云存储:如何防范机器人?,firebase,google-cloud-firestore,google-cloud-functions,google-cloud-storage,recaptcha,Firebase,Google Cloud Firestore,Google Cloud Functions,Google Cloud Storage,Recaptcha,我已经在Android应用程序客户端使用了ReCAPTCHA(当然,我还实现了它的服务器端验证) 但是,此ReCAPTCHA仅在一个活动中实现。但是,当然,黑客可以修改应用程序。例如: 他们只需从所有活动中删除ReCAPTCHA 或者启动另一项本不会实施ReCAPTCHA的活动;顺便说一句:我没有在每个活动中实现ReCAPTCHA,因为根据我刚才提到的第一个问题,它是无用的 因此,我想在云函数中检测bot和垃圾邮件请求,然后在云Firestore中检测,然后在云存储中检测,用于以下访问:读、

我已经在Android应用程序客户端使用了ReCAPTCHA(当然,我还实现了它的服务器端验证)

但是,此ReCAPTCHA仅在一个活动中实现。但是,当然,黑客可以修改应用程序。例如:

  • 他们只需从所有活动中删除ReCAPTCHA

  • 或者启动另一项本不会实施ReCAPTCHA的活动;顺便说一句:我没有在每个活动中实现ReCAPTCHA,因为根据我刚才提到的第一个问题,它是无用的

因此,我想在云函数中检测bot和垃圾邮件请求,然后在云Firestore中检测,然后在云存储中检测,用于以下访问:读、写、函数调用。它允许我防止不需要的内容被保存在Firestore中(例如,垃圾邮件等),并避免超出我的每月计费限额(例如,因为对Firestore的垃圾邮件请求)

可能吗?如何检测?

这些产品没有“垃圾邮件检测”。您的安全规则将决定谁可以访问哪些数据。如果您没有适当的安全规则,并且允许公共访问,那么任何人都可以获取该数据,发生这种情况时,您将为此收取费用。这就是可公开访问的云服务的本质

如果您希望对这些产品中的数据进行更多控制,可以使用安全规则停止所有直接公共访问,并强制客户端通过您控制的后端。后端可以尝试应用一些逻辑,根据您确定的任何标准来确定它是否是“垃圾邮件”。这方面没有简单的算法——您需要定义“垃圾邮件”的含义,如果符合您的标准,则拒绝请求


谷歌确实对其云产品进行了一定程度的滥用检测,但可能需要大量滥用才能触发警报。如果你怀疑有虐待行为,一定要收集信息并发送给他人寻求帮助。

我想补充一点,有另一种方法限制对云功能的访问

Doug已经描述了方法1,即在云函数中编写访问逻辑。在这种情况下,函数仍然会被调用,但采用哪种代码路径取决于您的逻辑

方法2是,您可以将函数设置为“private”,以便只有注册用户才能调用它(由您决定权限)。在这种情况下,未经验证的请求将被拒绝,并且根本不会调用该函数


方法2之所以有效,是因为每个Firebase项目也是一个Google云平台项目,而GCP提供了这一功能。以下是对(a)和(b)的相关参考

是的,我已经使用了安全规则,但您的其他信息非常有用。再次感谢道格!我已经投票并检查了你的答案。