【问题标题】:Cloud Functions, Cloud Firestore, Cloud Storage: How to protect against bots?Cloud Functions、Cloud Firestore、Cloud Storage:如何防范机器人?
【发布时间】:2020-05-18 11:27:11
【问题描述】:

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

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

  • 他们可以简单地从所有活动中删除 ReCAPTCHA,

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

所以我想在 Cloud Functions、Cloud Firestore 和 Cloud Storage 中检测机器人和垃圾邮件请求,用于以下访问:读取、写入、函数调用。它可以让我防止不需要的内容被保存在 Firestore 中,例如(垃圾邮件等),并避免超出我的每月计费配额(例如,因为对 Firestore 的垃圾邮件请求)。

有可能吗?怎么样?

【问题讨论】:

    标签: firebase google-cloud-firestore google-cloud-functions google-cloud-storage recaptcha


    【解决方案1】:

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

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

    Google 确实为其云产品提供了一定数量的滥用检测功能,但可能需要大量滥用行为才能触发警报。如果您怀疑存在虐待行为,请务必收集信息并将其发送至Firebase support 寻求帮助。

    【讨论】:

    • 是的,我已经使用了安全规则,但您的其余信息非常有用。再次感谢道格!我已经投票并检查了你的答案。
    【解决方案2】:

    只是想补充一点,还有另一种方法可以限制对 Cloud Functions 的访问。

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

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

    方式 2 之所以有效,是因为每个 Firebase 项目也是一个 Google Cloud Platform 项目,而 GCP 提供了此功能。以下是对 (a) Configuring functions as public/private 和 (b) authenticating end-users to your functions 的相关引用。

    【讨论】:

      猜你喜欢
      • 2018-03-23
      • 2018-03-27
      • 2020-02-04
      • 1970-01-01
      • 2021-04-07
      • 2018-08-02
      • 2019-07-11
      • 1970-01-01
      • 2017-09-30
      相关资源
      最近更新 更多